Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mausklick auf das X (Fenster schließen) simulieren (https://www.delphipraxis.net/56744-mausklick-auf-das-x-fenster-schliessen-simulieren.html)

hitzi 10. Nov 2005 12:57


Mausklick auf das X (Fenster schließen) simulieren
 
Hallo,

mit dem folgenden Code komm ich damit nicht an's Ziel da der Mausklick nur im Clientbereich des fremden Fensters ausgeführt wird. Ich müßte aber in der Titelzeile des fremden Fensters klicken.

Delphi-Quellcode:
GetWindowRect(dWindowHandle, MyRect);
PostMessage(dWindowHandle, WM_MouseMove, 0, MakeLParam((MyRect.Right - MyRect.Left) - 13, 13));
PostMessage(dWindowHandle, WM_LButtonDown, MK_LBUTTON, MakeLParam((MyRect.Right - MyRect.Left) - 13, 13));
PostMessage(dWindowHandle, WM_LButtonUp, 0, MakeLParam((MyRect.Right - MyRect.Left) - 13, 13));
Wie kann ich also in der Titelzeile eines fremden Programmes einen Mausklick simulieren?

Gruss

Zacherl 10. Nov 2005 13:01

Re: Mausklick auf das X (Fenster schließen) simulieren
 
Wenn es nur um das Beenden geht. Einfach CloseWindow(HANDLE) aufrufen und das Handle des Fensters übergeben.

Florian

hitzi 10. Nov 2005 13:07

Re: Mausklick auf das X (Fenster schließen) simulieren
 
Hmmm ... funktioniert teilweise.

Das Fenster verschwindet, leigt aber minimiert beim Startbutton und ist noch in der Taskbar sichtbar. Über die Taskbar muss ich dann noch mal auf Schließen gehen, damit's ganz verschwindet. Könnte mir vorstellen, dass es an der Sicherheitsabfrage (Wirklich schließen?) des Fensters liegt, dass das Programm nicht ganz geschlossen wird.

Andere Vorschläge?

teebee 10. Nov 2005 13:28

Re: Mausklick auf das X (Fenster schließen) simulieren
 
Probier mal WM_SYSCOMMAND mit SC_CLOSE,

Gruß, teebee

hitzi 10. Nov 2005 13:30

Re: Mausklick auf das X (Fenster schließen) simulieren
 
Mit
Delphi-Quellcode:
PostMessage(dWindowHandle, WM_SYSCOMMAND, SC_CLOSE, 0);
und anschließenden automatischen Bestätigen der Sicherheitsabfrage funktionierts.

Problem gelöst - danke teebee :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz