| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Programme: Fremdprogramm beenden (2)
Def @Createtoolhelp32snapshot(2) !kernel32,CreateToolhelp32Snapshot
Def @Process32first(2) !kernel32,Process32First
Def @Process32next(2) !kernel32,Process32Next
Def @Closehandle(1) !kernel32,CloseHandle
Def @Terminateprocess(2) !kernel32,TerminateProcess
Def @Openprocess(3) !kernel32,OpenProcess
Def &Th32cs_snapprocess 2
Def &Process_terminate 1
Declare Processentry#
Struct Processentry32 =Dwsize&,Cntusage&,Th32processid&,Th32defaultheapid&,Th32moduleid&,Cntthreads&,Th32parentprocessid&,Pcpriclassbase&,Dwflags&,Szexefile$(260)
Proc Actua
Parameters Prozess$, Delete%
Declare Lenname&
Declare Hsnapshot&, Result&, Hprocess&, Proz_anzahl&, Term_ok&
Dim Processentry#, Processentry32
Long Processentry#,0 =296
Clear Proz_anzahl&, Term_ok&
Lenname& = Len(Prozess$)
Prozess$ = Lower$(Prozess$)
Hsnapshot& = Createtoolhelp32snapshot(&Th32cs_snapprocess, 0)
Ifnot Hsnapshot& = -1
Result& = Process32first(Hsnapshot&, Processentry#)
messagebox(str$(GetLastError()),Err,48)
messagebox(str$(Result&),str$(hSnapshot&),48)
While Result&
messagebox(Lower$(Right$(PROCESSENTRY#.szExeFile$,lenname&)),,48)
If Lower$(Right$(Processentry#.Szexefile$,Lenname&)) = Prozess$
If Delete% = 1
Hprocess& = @Openprocess(&Process_terminate, 0, Processentry#.Th32processid&)
sendmessage(hProcess&,$0010,0,0)
Term_ok& = @Terminateprocess(Hprocess&, 0)
@Closehandle(Hprocess&)
Sleep 100
Endif
Proz_anzahl& = Proz_anzahl& + (Delete%<>1) + Term_ok&
Endif
Result& = Process32next(Hsnapshot&, Processentry#)
Endwhile
Endif
@Closehandle(Hsnapshot&)
Dispose Processentry#
Return Proz_anzahl&
Endproc
@Winexec(NotePad.exe,1)
Sleep 10000
Actua Notepad.exe,1
|
|
|
| |
|
|