Funktion um ein Programm zu beenden?
-
Hi ich suche ein Funktion die ein bestimmtes Programm beendet sobald es gestartet wird
Wie sieht dazu der code aus?
Der code müsste meiner Meinug nach etwa so aussehen:Schleife:
Find window("test.exe")if foun
{
close "test.exe
}
else
{
goto Schleife;
}Aber wie sieht es genau aus?
-
HWND hWnd = ::FindWindow(lpszClassName, lpszWindowName); if (!hWnd) return; ::DestroyWindow(hWnd);Referenzen:
FindWindow
DestroyWindow
-
WM_CLOSE
-
Ich mach jetzt sowas:
CString className = _T("Afx:400000:8:10011:0:10695"); HWND hwnd = ::FindWindow((LPCTSTR)className, NULL); ::SendMessage(hwnd, WM_CLOSE, 0, 0);Den ClassName spuckt mein Spy Tool aus. Kann ich mich auf die Konstante Afx:400000:8:10011:0:10695 verlassen? Mein Prog soll auch auf anderen Computern laufen und das zu schliessende Fenster kann auch in anderen Versionen vorliegen.

-
Ich würde mich darauf nicht verlassen...
aja... wofür legst du extra eine Variable vom Type CString an? DAvon mal abgesehen das das kein WinAPI ist... und wenn das Fenster nicht gefunden wird kackt dein Programm ab!
HWND hWnd = ::FindWindow(_T("Afx:400000:8:10011:0:10695"), NULL); if (!hWnd) return; ::SendMessage(hWnd, WM_CLOSE, 0, 0);
-
-
electron schrieb:
Den ClassName spuckt mein Spy Tool aus. Kann ich mich auf die Konstante Afx:400000:8:10011:0:10695 verlassen? Mein Prog soll auch auf anderen Computern laufen und das zu schliessende Fenster kann auch in anderen Versionen vorliegen.

Nein! Denn diese Zahlen die hier auftreten sind handles und können sich von Start zu Start und von System zu system ändern.
Ein direktes DestroyWindow üwrde ich in jedem Fale nicht verwenden. Der korrekte Weg wurde hierschon gezeigt mit senden von WM_CLOSE. Das garantiert Dir dennoch nicht, dass die Applikation beendet wird.