2009-02-10 7 views

Antwort

26

Sie müssen den Gerätekontext des Fensters (GetWindowDC()) holen und Bild (BitBlt()) davon kopieren. Abhängig davon, was Sie sonst noch über die Anwendung wissen, werden Sie verschiedene Methoden verwenden, um herauszufinden, welcher Fenstergriff in GetWindowDC() übergeben werden soll.

+6

fügen Sie bitte weitere Details zur Verwendung von GetWindowDC und BitBlt hinzu, um einen Screenshot zu erhalten. ich will die Details auch .... – jondinham

+0

Benötigen Sie Code :(... – Sreekar

3

In der Funktionsdokumentation keybd_event steht, dass Sie damit einen Screenshot erstellen und in die Zwischenablage speichern können. Zum Beispiel:

keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0); 

In meiner Version (Visual Studio 2005 Hilfe auf meinem Computer installiert ist) heißt es, dass Sie, indem Sie den zweiten Parameter auf 0 oder einen Screenshot nur einen Screenshot des gesamten Desktop nehmen die aktuelle Anwendung, indem Sie es auf 1 setzen.

Es aus der Zwischenablage Puffer wird als Übung für den Leser verlassen.

Allerdings würde ich sorgfältig überlegen, bevor Sie dies tun, da es torf, was auch immer Bilddaten bereits in der Zwischenablage vorhanden war.

+1

das ist das Ereignis für die PrintScr Taste auf der Tastatur. das 'keybd_event', das Sie angaben, kann nicht verwendet werden, um screenshot zu machen. was für ein Konzept Missverständnis! – jondinham

+2

@Paul Folgen Sie dem Link, den ich eingefügt habe, und lesen Sie den Abschnitt "Bemerkungen": "Eine Anwendung kann einen Druck auf die Taste PRINTSCRN simulieren, um einen Screenshot zu erhalten und in die Zwischenablage zu speichern. Rufen Sie dazu keybd_event auf mit dem bVk-Parameter auf VK_SNAPSHOT gesetzt. " – Daemin

+0

oh ok ich sehe, wusste nicht, wir könnten das Drücken von printscr Schlüssel simulieren :) – jondinham

0

Hier ist ein Beispiel code
Sie können CaptureAnImage(GetDesktopWindow()); machen, um eine Bildschirmaufnahme zu machen.