Externes Fenster beenden!
-
Danke
-
Sorry ich bekomm das nich hin kann mir da einer vielleicht nen beispiel reinschreiben mit z.B. muster.exe Danke!
-
sag einfach wo du steckengeblieben bist und ich erklärs dir
-
Also zum testen hab ich ne Beispielanwendung programmiert und hab mit ShellExecute Notepad gestartet. Nun lass ich mit der Funktion FindWindow den Handle ausgeben(die Parameter hab ich aus Spy++) doch nun kann ich die Anwendung weder mit SendMessage(...) noch mit TerminateProcess schließen. Und meine SendMessage Funktion akzeptiert keine 4 Parameter. Es gehen nur (WM_CLOSE,NULL,NULL) mehr akzeptiert der nich.
ShellExecute(NULL, "open","C:\\WINNT\\notepad.exe", NULL, NULL, SW_SHOWNORMAL);
HANDLE a = FindWindow("Notepad","Unbennant - Editor");
TerminateProcess(a,0);
-
ähhh, die MSDN lautet:
CWnd::FindWindow
This method retrieves the top-level CWnd whose window class is specified by lpszClassName and whose window name, or title, is specified by lpszWindowName. This method does not search child windows.static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName );
Parameters
lpszClassName
Points to a null-terminated string that specifies the window class name, a WNDCLASS structure. If the lpClassName parameter is NULL, then all class names result as a successful match.
lpszWindowName
Points to a null-terminated string that specifies the window name, the window title. If the lpWindowName parameter is NULL, then all window names result as a successful match.warum gibtst du als Parameter "notepad" und "unbennant - editor" an ?????
Ich würde FindWindow(NULL,"notepad") angeben...... (denke ich..)
-
probier mal
ShellExecute(NULL, "open","notepad", NULL, NULL, SW_SHOWNORMAL); CWnd* found = FindWindow(0,"Unbennant - Editor"); if(found) ::SendMessage(found->m_hWnd,WM_Close,0,0);zur erklärung
void CWnd::Funktion() { SendMessage(WM_Close,0,0); //das ist die memberfunktion des cwnds ::SendMessage(hWnd,WM_Close,0,0); //das is die globale sendmessage funktion }
-
Danke für eure Hilfe aber es scheint immer noch nich zu klappen dass Fenster bleibt da.
p.s. WM_close funktioniert bei mir nicht (nichdeklarierter Bezeichner); damit ist doch WM_CLOSE gemeint oder?
-
ConquwererD schrieb:
damit ist doch WM_CLOSE gemeint oder?
ja
findet er das fenster? hat found einen wert?
-
Ich glaube nicht! Wie kann ich das nachgucken?
Hab mal nen else mit ner MessageBox eingefügt und er hat mir immer die MessageBox angezeigt müsste doch eigentlich heißen, dass es nicht gefunden wurde?
-
ja das würde es heissen
besser nachschaun kannst du mit breakpoints/haltepunkten
kannst ja mal in der msdn zu dem thema schmökernschau dir mal enumwindows an... da hast du mehr einflussmöglichkeiten weil er dir in der callbackfunktion das handle jedes fensters gibt
schreib wenn du fragen oder probleme hast