Screenshot von Fenster

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Screenshot von Fenster

Beitrag von DerProgrammierer78 »

Hallo liebe Forengemeinde,

Ich habe folgendes Problem ...

Ich habe die Seite http://www.i2w.org/ und möchte mir einen Dienst programmieren, der von einer Liste von Webseiten Screenshots macht und diese abspeichert.

Dieser Dienst soll dann auf dem Server laufen und Screenshots mit einer Auflösung von 1024x768 machen, diese nach 160x120 verkleinern und in der Datenbank ablegen.

Geht das überhaupt?


Alternativ würde ich mir auf meinem Computer zuhause eine Software installieren, die das macht. Nur müsste die auch die Seiten laden und die Screenshots machen, wenn das Anwendungsfenster minimiert ist.


Und genau da sehe ich in beiden Fällen das Problem ... Man findet viele Codes, die Screenshots machen, aber keinen, der auch ein Bild von dem Inhalt eines minimierten Fensters macht.

Ich hatte schon überlegt das Browserfenster einfach per default aus dem sichtbaren Bereich raus zu verschieben und dann die Screenshots zu machen, aber dafür finde ich auch keinen Code...

Ein weiteres Problem sehe ich in der Überwachung, wann eine Seite fertig geladen ist. Aber da findet man sicher einige Codes für ;)

Gruß

Frank
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Screenshot von Fenster

Beitrag von Kaeru Gaman »

ein Fenster, das minimiert oder außerhalb des Desktops ist, kann man nicht knipsen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Screenshot von Fenster

Beitrag von Kiffi »

DerProgrammierer78 hat geschrieben:Ich habe die Seite http://www.i2w.org/ und möchte mir einen Dienst programmieren, der von einer Liste von Webseiten Screenshots macht und diese abspeichert.
bevor wir die Screenshot-Problematik lösen: hast Du denn auch überhaupt die
Möglichkeit, ein von Dir geschriebenes Programm auf diesem Server laufen zu lassen?

Grüße ... Kiffi
a²+b²=mc²
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Screenshot von Fenster

Beitrag von super_castle »

ein Fenster, das minimiert oder außerhalb des Desktops ist, kann man nicht knipsen.
Diese Aussage hat nur Gültigkeit für Purebasic.

Mit dem GFA32 für Windows kann ich vom "hdc2" jederzeit Fotos machen, ob ausserhalb des Fenster oder auch minimiert.
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Screenshot von Fenster

Beitrag von c4s »

super_castle hat geschrieben:
ein Fenster, das minimiert oder außerhalb des Desktops ist, kann man nicht knipsen.
Diese Aussage hat nur Gültigkeit für Purebasic.
Soweit ich weiß gibt es sowieso keinen internen PureBasic-Befehl der einen Screenshot von einem Fenster macht.
Also wie soll man jetzt deinen Beitrag verstehen?
super_castle hat geschrieben:Mit dem GFA32 für Windows kann ich vom "hdc2" jederzeit Fotos machen, ob ausserhalb des Fenster oder auch minimiert.
Und was hat es damit auf sich?

Also um dich zu korrigieren: Man kann sehr wohl in PureBasic Screenshots von nicht sichtbaren Fenstern machen. Hierzu einfach mal "user32.dll" -> "PrintWindow" anschauen (ist als Api-Befehl noch nicht eingebaut).
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Screenshot von Fenster

Beitrag von Kaeru Gaman »

o_O"

ich war davon ausgegangen, dass die Bildinformation von einem nicht aufgebauten Fenster garnicht vorhanden ist.
wieso soll Windows eine Bitmap erzeugen, wenn sie nicht angezeigt werden muss?
... oder macht die PrintWindow-Funktion das extra für sich?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Screenshot von Fenster

Beitrag von Kiffi »

ich habe mal kurz was zusammengezimmert (teilweise geklauter Code):

Code: Alles auswählen

EnableExplicit

UsePNGImageEncoder()

Procedure SavePicture(Handle, Filename.s)
  Protected cr.RECT
  Protected hdc
  GetClientRect_(Handle, @cr)
  CreateImage(0, cr\right-cr\left, cr\bottom-cr\top, 24)
  SendMessage_(Handle, #WM_PRINT, StartDrawing(ImageOutput(0)), #PRF_CLIENT | #PRF_CHILDREN | #PRF_ERASEBKGND)
  StopDrawing()
  ProcedureReturn SaveImage(0, Filename, #PB_ImagePlugin_PNG)
EndProcedure

#Window    = 0
#WebGadget = 0

OpenWindow(#Window,    0, 0, 600, 300, "WebGadget", #PB_Window_Invisible)
WebGadget (#WebGadget, 0, 0, 600, 300, "http://www.purebasic.com")
  
Repeat
  While WindowEvent() : Delay(1) : Wend
Until GetGadgetAttribute(#WebGadget, #PB_Web_Busy)=0

If SavePicture(GadgetID(#WebGadget), "C:\WG_Screenshot.png")
  RunProgram("c:\WG_Screenshot.png")
Else
  MessageRequester("Hinweis", "Screenshot konnte nicht erstellt werden")
EndIf
Um es kurz zu machen: Sowohl #PB_Window_Invisible als auch
#PB_Window_Minimize sind mögliche Parameter. In beiden Fällen
wird ein Screenshot generiert.

Grüße ... Kiffi
a²+b²=mc²
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Screenshot von Fenster

Beitrag von c4s »

Sonst einfach mal bei msdn vorbei gucken:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Habe aber gerade festgestellt, dass Kiffis Lösung anscheinend genau dasselbe bewirkt. Obwohl ich mich dunkel daran erinnere im englischen Forum etwas über Probleme mit SendMessage(#WM_PAINT) gelesen zu haben.

Bei beiden Codes besteht halt das Problem, dass von der Website nur in Fenstergröße ein Screenshot gemacht wird.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Re: Screenshot von Fenster

Beitrag von DerProgrammierer78 »

Hallo zusammen ...

Ich bin heute mal wieder über diesen Code gestolpert, den man mir hier vor Jahren gepostet hatte und stellte fest, dass er einen Nachteil hat.

Ich würde gerne automatisiert Screenshots von Facebook-Seiten und Facebook-Spielen machen für meine Seite http://www.facebook-spiele.de/ .

Leider bleiben die Screenshots von Facebook immer leer (Nur rein Weiss) und auch nach langem suchen bei Gooogle wurde ich nicht fündig.

Hat hier jemand eine Idee?
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Screenshot von Fenster

Beitrag von Delle »

DerProgrammierer78 hat geschrieben:Leider bleiben die Screenshots von Facebook immer leer (Nur rein Weiss) und auch nach langem suchen bei Gooogle wurde ich nicht fündig.
Auf einem minimierten Fenster wird manchmal kein Inhalt ausgegeben, erst wieder wenn das Fenster aktiv und "sichtbar" ist.

FB macht ja heavy Gebrauch von JavaScript und da kann man das wohl abfragen ....
PB 6.21 | Win 11
Antworten