PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : threads aus eigenem Prog schließen


reimo
2003-05-26, 17:31:57
Hi,

weiss jemand, wie ich in c unter W2k von meinem Programm aus ein anderes schliessen kann?
Dabei ist das zu schliessende Programm nicht von meinem Prog aus gestartet worden -> kein handle auf das zu schliessende Prog.

zum Beispiel eine DOS-Eingabeaufforderung schliessen -> Wie???

THX,
reimo

Xmas
2003-05-26, 19:05:17
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/taking_a_snapshot_and_viewing_processes.asp

Das Beispiel zeigt wie du alle Prozesse im System auflisten kannst. Anhand dieser Daten musst du herausfinden, welchen Prozess du genau schließen willst.

Alternativ kannst du die ProcessID auch mit GetWindowThreadProcessId() bekommen, dafür brauchst du ein Window Handle der zu schließenden Anwendung. Das wiederum kannst du mit FindWindow() und dem Fenstertitel bekommen.

Dann öffnest du ihn mit OpenProcess() und beendest ihn mit TerminateProcess().

reimo
2003-05-27, 08:14:20
danke, werds gleich mal ausprobieren!!!!

reimo
2003-05-27, 10:34:36
http://msdn.microsoft.com/library/d...g_processes.asp

Das Beispiel zeigt wie du alle Prozesse im System auflisten kannst. Anhand dieser Daten musst du herausfinden, welchen Prozess du genau schließen willst.

Das ist genau das, was ich benötige! Nur leider werden auf diese weise die ID's der Processe geliefert, die Funktionen zum Terminieren benötigen aber das Handle. Wie bekomm ich jetzt das Handle von der ID, oder gibt es eine Funktion, die den Process anhand der ID terminiert???
Habs versucht in der MSDN zu finden aber leider noch nichts gefunden!

THX,
reimo

reimo
2003-05-27, 10:57:18
Ups!!!

hat sich erledigt (OpenProcess) !! -> steht eh alles in deinem Beispiel Xmas, hab aber gedacht, dass OpenProcess einen Process startet und nicht den Handle auf den existierenden liefert, also hab ichs nicht wirklich beachtet.

THX,
reimo