📄 getpids.inc
字号:
;=================================================
GetCurrentPIDs PROC USES EBX ESI EDI, PIDbuffer, PIDbuffersize
LOCAL PIDCount :DWORD
LOCAL What :DWORD
LOCAL CleanUp :DWORD
LOCAL Process :PROCESSENTRY32
AND PIDCount, 0
iMOV ESI, GetProcAddress
MOV EDI, PIDbuffer
iWin32i GetModuleHandle, sK32
TEST EAX, EAX
JE GetAllPIDsEnd
MOV EBX, EAX
sWin32 ESI, EBX, sCT32S
TEST EAX, EAX
JE GetAllPIDsEnd
sWin32 EAX, TH32CS_SNAPPROCESS, 0
CMP EAX, -1
JE GetAllPIDsEnd
iPUSH CloseHandle
MOV What, EAX
POP CleanUp
sWin32 ESI, EBX, sP32N
TEST EAX, EAX
JE Tidy
PUSH EAX
sWin32 ESI, EBX, sP32F
TEST EAX, EAX
POP ESI
JE Tidy
LEA EBX, Process
MOV Process.dwSize, SIZEOF PROCESSENTRY32
sWin32 EAX, What, EBX
CheckProc:
TEST EAX, EAX
JE Tidy
MOV EAX, Process.th32ProcessID
INC PIDCount
STOSD
sWin32 ESI, What, EBX
JMP CheckProc
Tidy:
sWin32 CleanUp, What
GetAllPIDsEnd:
MOV EAX, PIDCount
RET
TEXT K32, <KERNEL32.dll/0>
TEXTA CT32S,<CreateToolhelp32Snapshot/0>
TEXTA P32F, <Process32First/0>
TEXTA P32N, <Process32Next/0>
GetCurrentPIDs ENDP
;=================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -