Fensterstatus eines anderen Prozesses abrufen

8

Wie bekomme ich den Fensterstatus ( maximized , minimized ) eines anderen laufenden Prozesses?

Ich habe versucht, dies zu verwenden:

%Vor%

Aber wenn der Prozess Maximized oder Minimized ist, gibt er immer Normal zurück.

Wie behebt man das?

    
Jack 16.06.2012, 16:05
quelle

4 Antworten

18

Sie müssen Win32 über P / Invoke verwenden, um den Status eines anderen Fensters zu überprüfen. Hier ist ein Beispielcode:

%Vor%

Definition mit freundlicher Genehmigung von pinvoke.net.

    
Douglas 16.06.2012, 16:23
quelle
6

Sie verwenden proc.StartInfo, was falsch ist. Es spiegelt nicht den Laufzeitfensterstil des Zielprozesses wider. Es sind nur Startup-Informationen, die Sie festlegen können und die beim Start an den Prozess weitergegeben werden können.

Die C # -Signatur lautet:

%Vor%

Sie müssen p / invoke verwenden und GetWindowLong (hWnd, GWL_STYLE) aufrufen und proc.MainWindowHandle als hWnd-Parameter übergeben.

Sie können prüfen, ob das Fenster minimiert / maximiert ist, indem Sie etwa Folgendes tun:

%Vor%

HINWEIS: Die Werte für die Flags (WS_MINIMIZE usw.) finden Sie auf dieser Seite: Ссылка

Danke an Kakashi, dass er auf den Fehler beim Testen des Ergebnisses hingewiesen hat.

    
Marcel N. 16.06.2012 16:19
quelle
2

Zwei Fensterzustände (maximiert / minimiert) können durch Aufruf von WinAPI IsIconic () / IsZoomed () wie folgt erhalten werden:

%Vor%

Definition von enum ShowWindowCommands und andere Funktionen wurden von www.PInvoke.net

genommen     
Mic 04.06.2014 09:20
quelle
0

In Windows PowerShell können Sie dazu den folgenden Code verwenden:

%Vor%     
Ladislav 14.10.2016 11:10
quelle

Tags und Links