A comment von theB mit guten Ressourcen für Java verknüpft. Ich werde die relevanten Windows-APIs durchlaufen, falls Sie nativ mit C++ arbeiten möchten.
Um alle Top-Level-Fenster im System aufzuzählen, verwenden Sie EnumWindows
10. Sie geben ihm eine Callback-Funktion mit der Signatur EnumWindowsProc
, so dass er jedes Fensterhandle als ersten Parameter erhält.
Sie können die Fensterposition (in Bildschirmkoordinaten) und Abmessungen mit der GetWindowRect
-Funktion abrufen. Übergeben Sie das Fenster, das Sie erhalten haben, und rufen Sie LPRECT
(Zeiger auf RECT
) auf.
Um festzustellen, ob ein Fenster maximiert ist, verwenden Sie GetWindowPlacement
und überprüfen Sie das showCmd
Feld der WINDOWPLACEMENT
Struktur, die Sie erhalten.
Schließlich, um eine Fensterbeschriftung zu erhalten, verwenden Sie GetWindowText
. (Nebenbei, wenn Sie den Text eines Steuerelements in einem anderen Prozess abrufen möchten, müssen Sie die Nachricht WM_GETTEXT
selbst senden.)
Siehe: [1] (http://stackoverflow.com/questions/ 6091531/how-to-get-the-x-und-y-von-einem-Programm-Fenster-in-Java) [2] (http://stackoverflow.com/questions/11067484/get-titles-of- non-java-windows-in-java) [3] (http://stackoverflow.com/questions/31312793/why-does-my-call-to-winapi-getwindowplacement-fail-using-jna) – theB