Screenshot eines bestimmten Fensters erstellen - C ++ / Qt

8

Wie mache ich in Qt einen Screenshot eines bestimmten Fensters (d. h., ich hätte Notepad hochgeladen und ich wollte einen Screenshot des Fensters mit dem Titel "Untitled - Notepad" machen)? In ihrem Screenshot-Beispielcode zeigen sie, wie man einen Screenshot des gesamten Desktops macht:

%Vor%

Wie bekomme ich die winId () für ein bestimmtes Fenster (vorausgesetzt, ich kannte den Titel des Fensters) in Qt?

Danke

    
Switch 21.11.2009, 01:43
quelle

6 Antworten

2

Ich bin mir ziemlich sicher, dass das plattformspezifisch ist. winIds sind HWNDs unter Windows, also könnten Sie FindWindow(NULL, "Untitled - Notepad") in dem von Ihnen angegebenen Beispiel aufrufen.

    
ChrisV 21.11.2009, 01:46
quelle
3

Für Qt besteht die Art, wie Sie "einen Screenshot eines bestimmten Fensters erstellen" zu:

%Vor%     
Trevor Boyd Smith 30.09.2011 21:12
quelle
2

Sehen Sie sich die Klasse QDesktopWidget an. Es ist von QWidget geerbt, also gibt es buchstäblich kein Problem, Screenshot zu machen:

%Vor%     
GreenScape 30.09.2011 22:34
quelle
2

Sehen Sie sich Screenshot-Beispiel

an

Kurz gesagt:

%Vor%     
Nya 04.06.2015 17:31
quelle
1

Siehe auch WindowFromPoint und EnumChildWindows . Letzteres könnte es Ihnen ermöglichen, den Benutzer aufzufordern, zu disambiguieren, wenn Sie mehrere Fenster mit demselben Titel hatten.

    
Jake Petroules 24.05.2010 19:28
quelle
0

Obwohl dies bereits beantwortet wurde, nur aus Gründen der Vollständigkeit, werde ich zu Trevor Boyd Smiths Beitrag (siehe oben) ein Code-Snippet-Beispiel hinzufügen:

%Vor%     
dim_tz 28.04.2014 20:21
quelle

Tags und Links