Forum: PC-Programmierung [WinXP] Testautomatisierung, ScreenShots, user32.dll


von Thomas M. (thomaswm)


Lesenswert?

Hallo,

zum Testen einer Software möchte ich Testschritte automatisieren. Ich 
habe in C ein Programm geschrieben, welches die Mauskontrolle übernimmt 
und gezielt Eingaben im Programmfenster vornimmt. (mouse_events, 
user32.dll)

Nun möchte ich noch einen Screenshot vom Fenster (oder noch besser vom 
Arbeitsbereich des Fensters, also ohne Fensterelemente) machen. Ist das 
mit Windows-Bordmitteln möglich?

MfG
Thomas

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Thomas M. schrieb:
> Ist das mit Windows-Bordmitteln möglich?

Deine Tastatur hat eine mit "Druck" beschriftete Taste. Deren Betätigung 
kopiert den aktuellen Bildschirminhalt in die Zwischenablabe. Wird 
gleichzeitig die Alt-Taste gedrückt, landet nur der Inhalt des aktiven 
Fensters in der Zwischenablage.

Du musst also den Tastendruck simulieren und danach den Inhalt der 
Zwischenablage in einer Datei abspeichern.

von Karl H. (kbuchegg)


Lesenswert?

Alternativ kannst du dir auch einen Window-Handle auf den Desktop 
besorgen und mit diesem einen BitBlt in eine Bitmap machen, die du dann 
speichern kannst.

von Peter II (Gast)


Lesenswert?

Thomas M. schrieb:
> zum Testen einer Software möchte ich Testschritte automatisieren. Ich
> habe in C ein Programm geschrieben, welches die Mauskontrolle übernimmt
> und gezielt Eingaben im Programmfenster vornimmt.

das gibt es schon fix und fertig. Und dafür gibt es eine erweiterung die 
Screenshots mache. (findest zumindest google)

von Peter II (Gast)


Lesenswert?

Oh es fehlt doch der link

http://www.autoitscript.com/site/autoit/

von Thomas M. (thomaswm)


Lesenswert?

Was fertiges ist schlecht, da mein Programm noch einiges mehr an 
Funktionalität hat. Socketverbindungen, Threads, usw ...

von Peter II (Gast)


Lesenswert?

Thomas M. schrieb:
> Was fertiges ist schlecht, da mein Programm noch einiges mehr an
> Funktionalität hat. Socketverbindungen, Threads, usw ...

selbst TCP kann das tool, bei threads scheinbar nicht. Aber dafür kann 
es bestimmt sachen die dein tool nicht kann.

von Thomas M. (thomaswm)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Alternativ kannst du dir auch einen Window-Handle auf den Desktop
> besorgen und mit diesem einen BitBlt in eine Bitmap machen, die du dann
> speichern kannst.

Danke, der Ansatz ist gut.

Die Funktion "GetWindowDC" scheint genau das zu machen, was ich suche. 
Ich versuche es mal. :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.