Externen Process beenden
-
Hi,
ich habe folgendes Problem.
Von einem Process kenne ich nur seine ProcessID. Nun möchte ich diesen Process beenden.Bisher wurde dies über TerminateProcess gemacht, was aber nicht sauber ist. Ich würde lieber so was wie WM_Quit senden. Nur dazu benötige ich die Process_Information. Wie bekomme ich die von der ProcessID.
Danke für die hilfe
-
Ach ja, nochwas. Der Process läuft im Hintergrund und habt kein Fenster
-
Um einem (fremden) Prozeß einen WM_QUIT (oder WM_CLOSE) senden zu können, benötigt dieser eine Nachrichtenschleife.
Da dieser nach Deinen Worten kein eigenes Fenster hat, ist diese Voraussetzung nicht unbedingt gegeben.
Handelt es sich um einen normalen prozeß oder vielleicht einen Service?Martin
-
Es handelt sich um einen Prozess, der im Hintergrund läuft und von einer anderen APP, auf die ich Programmtechnisch keinen Zugriff habe gestartet wird.
Gibt es keine Möglichkeit an die Process_Information zu kommen?
-
schau dir die Psapi.lib/.h an, da solltest du fündig werden
http://msdn.microsoft.com/en-us/library/ms684894%28VS.85%29.aspx
-
Genau das wäre der Weg ...
Many functions in PSAPI require a process handle.
Deshalb wäre das ein guter Anfang:
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |PROCESS_VM_READ, FALSE, processID );