vor langer Zeit hatte ich folgende Funktion gefunden und in meine Software eingebaut:
Code: Alles auswählen
Procedure KillAllProcessesByName(ProcessName.s)
; PB 4.30
; Remove multiple processes without GUI...
#PROCESS_TERMINATE = $1
#PROCESS32LIB = 9999
#TH32CS_SNAPPROCESS = $2
If OpenLibrary (#PROCESS32LIB, "kernel32.dll")
snap= CallFunction (#PROCESS32LIB, "CreateToolhelp32Snapshot", #TH32CS_SNAPPROCESS, 0)
If snap
Define.PROCESSENTRY32 Proc32
Proc32\dwSize = SizeOf (PROCESSENTRY32)
If CallFunction (#PROCESS32LIB, "Process32First", snap, @Proc32)
Repeat
ProcName.s = PeekS(@Proc32 + 36, 296,#PB_Ascii)
Debug procname.s
If LCase(Left(ProcName,8)) = LCase(Left(ProcessName.s,8)) ; Groß/Klein und diverse Versionen von "notepad"
phandle = OpenProcess_ (#PROCESS_TERMINATE, #False, PeekL(@Proc32 + 8))
If phandle <> #Null
If TerminateProcess_ (phandle, 1)
result = #True: EndIf
CloseHandle_ (phandle)
EndIf
EndIf
Until CallFunction (#PROCESS32LIB, "Process32Next", snap, @Proc32) = 0
EndIf
CloseHandle_ (snap)
EndIf
CloseLibrary (#PROCESS32LIB)
EndIf
EndProcedure
KillAllProcessesByName("notepad.exe")
Hat jemand sowas auch für x64 irgendwo mal gefunden oder parat?
Ich bin da überfordert.