Programm richtig beenden und nicht killen

The_Rave

Mitglied
Ich habe hier schon diverse Postings durchsucht, aber noch nicht wirklich das richtige gefunden. Und zwar möchte ich ein Programm beenden aber nicht einfach mit TerminateProcess() sondern richtig beenden. Hintergrund ist der, daß das Programm beim beenden seine Einstellungen speichert. Das tut es aber nicht wenn es einfach terminiert wird. Ich würde dem Process gerne eine Message schicken, daß es sich selbst beenden soll, so als ob jemand auf dem Close Button drückt.
 
Sende einfach die WM_QUIT nachricht. Du musst nur vorher das Handle des Fensters holen

Nachrichten werden mit SendMessage geschickt

SendMessage(HWND, UINT, WPARAM, LPARAM);

also

SendMessage( hWnd, WM_QUIT, 0, 0);

Das Fenster kannst du zB. mit FindWindow suchen (der 1. Parameter ist der Name der Fensterklasse, den kannst du zB. mit Spy++ rausfinden. Der 2. ist der aktuelle Fenstertitel)

HWND hWnd = FindWindow(NULL, "titel");
 
Dankeschön, Das sind doch schon interessante Lösungsansätze. Funktioniert FindWindow eigentlich auch wenn das Programm im Tray liegt? Werde das erstmal versuchen umzusetzen.
 
Das war es auch schon mehr hab ich gar nicht gesucht. Aber WM_QUIT ging nicht, dann hab ich WM_Close genommen.


Code:
   HWND hwnd;
	hwnd =  FindWindow("MozillaUIWindowClass", NULL);
	SendMessage(hwnd, WM_CLOSE,0,0);
   return EXIT_SUCCESS;
 
Zurück