wann hat sich der bildschirm geändert?
-
hi, gibt es irgendeine möglichkeit, immer dann, wenn sich auf dem bildschirm etwas geändert hat, einen schreenshot von diesem "gebiet" zu machen?
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich denke, dazu müsstest du wohl Hooks verwenden, aber du kannst mal schauen, wie es z.B. bei realVNC gemacht wird

-
sorry, ich werd aus dem code einfach nich schlauz..
-
Sagen wir es so: wieviel Erfahrung hast du denn schon, denn ich würde mir sowas selbst zu schreiben auf jeden Fall nicht zutrauen

-
bis jetzt mach ich es einfach so, dass ich einen kompletten screenshot mach, und den (sofern vorhanden) mit einem vorherigen vergleiche, was mir aber zu umständlich ist...
-
Mit Hooks ist es eben auch nicht unbedingt einfach - dazu kannst du dir den Source von VNC unter /wm_hooks/wm_hooks.cxx anschauen. Ansonsten kann ich dir zumindest leider nicht weiterhelfen

-
gabs da nich was miot paintmessages abfangen?
-
Hatte ich auch zuerst gedacht, aber wenn du einfach nur WM_PAINT subclasst kannst du zwar das UpdateRect auslesen, aber da du ja dann vor der eigentlichen Zeichenoperation drankommst ist der Inhalt ja noch nicht neu gezeichnet

-
flenders schrieb:
einfach nur WM_PAINT subclasst kannst du zwar das UpdateRect auslesen, aber da du ja dann vor der eigentlichen Zeichenoperation drankommst ist der Inhalt ja noch nicht neu gezeichnet

das sollte aber kein Problem sein, entweder erst mal CallNextHook aufrufen und danach (das Fenster sollte dann wahrscheinlich neugezeichnet sein) das UpdateRect speichern oder gleich EndPaint abfangen, da ist der Bildschirm neu gezeichnet und man hat auch den HDC und das UpdateRect direct zur Verfügung. Problematisch wirds erst bei GetDC/ReleaseDC, also wenn ohne WM_PAINT gezeichnet wird, aber da gibts auch irgendwelche Möglichkeiten.