Prüfen ob Anwendung minimiert ist geht nicht
-
Hallo zusammen,
ich versuche gerade rauszubekommen, ob meine Anwendung minimiert ist.
Aber die zwei gängigen Möglichkeiten, die ich gefunden habe, funktionieren nicht.Der Window-Handle meiner Anwendung ist korrekt, da ein "ShowWindow(hwnd)" funktioniert.
Was mache ich falsch?Folgender Quellcode:
//ShowWindow(g_hwndMain, SW_NORMAL);// HP: - debug only - Das Haupt-Fenster auf normale Grösse und in Vordergrund bringen. long result = GetWindowLong(g_hwndMain, GWL_STYLE); bool isVisible = ((result & WS_VISIBLE) != 0); if (!IsWindowVisible(g_hwndMain)) { //if(!isVisible){ DoSomething(); }
Also beides, "isVisible" und "IsWindowVisible(..)" ergeben immer TRUE.
Die "ShowWindow(..)" verwende ich, um zu prüfen, ob mein Handle OK ist. Und das ist er
-
probiers mal mit isiconic.
-
@Wade1234 sagte in Prüfen ob Anwendung minimiert ist geht nicht:
isiconic
Vielen Dank Wade1234.
Das funktioniert.
Aber was ist der Unterschied?
-
du kannst fenster als "unsichtbar" erstellen, d.h. diese werden dann gar nicht angezeigt; trojaner und sonstige hintergrundprogramme sind ein schönes beispiel. und diesen status hast du dann eben abgefragt. mit isiconic fragst du ab, ob das fenster minimiert ist. https://docs.microsoft.com/de-de/windows/win32/api/winuser/nf-winuser-isiconic?redirectedfrom=MSDN bzw. https://docs.microsoft.com/de-de/windows/win32/winmsg/windows
-
@Wade1234
Nochmals danke!
Das wurde aus den anderen Artikeln und den MS-Docs leider nicht klar.
Oder zumindest nicht so eindeutig.
-
IsIconic prüft auch nur den Fensterstil... Der eigentliche Stil den Du auch prüfen kannst ist WS_MINIMIZE. Und WS_VISIBLE ist eben nicht WS_MINIMIZE.
https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles