Завершаем процесс на MASM
.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\shell32.inc include \masm32\include\advapi32.inc include \masm32\macros\macros.asm includelib \masm32\lib\user32.lib includelib \masm32\lib\shell32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\advapi32.lib
szText MACRO Name, Text:VARARG LOCAL lbl jmp lbl Name db Text,0 lbl: ENDM
.data? hSnapshot HANDLE ? ProcEnt PROCESSENTRY32 <?>
.code start: szText AppName ,"Terminate" szText Problem_child ,"calc.exe"
invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS,0 .IF (eax != INVALID_HANDLE_VALUE) mov hSnapshot,eax mov [ProcEnt.dwSize],SIZEOF ProcEnt invoke Process32First, hSnapshot,ADDR ProcEnt .IF (eax) @@: invoke lstrcmpi, ADDR Problem_child ,ADDR [ProcEnt.szExeFile] .IF (eax == 0) invoke OpenProcess, PROCESS_TERMINATE,FALSE,[ProcEnt.th32ProcessID] .IF (eax) invoke TerminateProcess, eax,0 .ELSE .ENDIF .ENDIF invoke Process32Next, hSnapshot,ADDR ProcEnt test eax,eax jnz @B .ENDIF .ENDIF invoke CloseHandle, hSnapshot END start
|