Hi,
nachdem ich hier zwar ein dem Grunde nach sehr ähnliches Thema gefunden habe (topic131920), dieses aber die eigentliche Lösung auch nicht enthält, dafür aber schon etwas älter ist, hoffe ich mal auf neu Ideen zur Problematik.
Hintergrund: auf einem Rechner mit Touchscreen läuft als permanente Vordergrundanwendung mein Programm im Vollbild und die Taskleiste ist ausgeblendet. Lediglich zeitweise soll per Tatsendruck eine fremde Anwendung für einige Zeit in den Vordergrund gebracht werden.
Selbige Anwendung wechselt allerding je nach akt. angezeigtem Inhalt ihre Titelleiste, daher erfolgt die Suche nach dem Programm über dessen Exe-Namen. (Fensterhandle über CreateToolHelp32Snapshot und ProcID2hWnd).
Allerdings scheint es dabei nicht immer ganz nachvollziehbar mit rechten Dingen zuzugehen, denn schon
IsIconic(AISErr_hWnd)
zeigt nicht zuverlässig an, daß das Fenster minimiert ist.
Inzwischen habe ich auch schon rausbekommen, daß die minimierte Anwendung ein anderes
Handle hat, als die aufgeblendete??? (WARUM?
)
die dann folgenden Befehle
ShowWindow(AISErr_hWnd, SW_RESTORE);
bzw.
WinPosErr := SetWindowPos(AISErr_hWnd, HWND_TOPMOST, 0, 100, 800, 400, SWP_SHOWWINDOW);
bringen den gewünschten Erfolg bei NICHT minimiertem Fenster in jedem Fall, bei tatsächlich minimiertem Fenster nur in 10-20% der Wechselversuche.
Kann mir jemand sagen was ich falsch mache, bzw. ob es einen besseren weil sichereren Weg gibt?
Vielen Dank schon mal im Vorraus.