|
精益原来的命令 缺点:在循环调用这个命令时,无限增大内存。
.版本 2
.子程序 进程_取父ID, 整数型, 公开, 根据进程名或进程ID取出进程父ID,失败返回-1。
.参数 参_ID或名称, 文本型, , 进程PID或进程名称
.局部变量 局_返回值
.局部变量 局_系统进程, SYSTEM_PROCESS_INFORMATION
.局部变量 局_缓冲区
.局部变量 局_所需尺寸
.局部变量 局_下条数据, 整数型
.局部变量 局_进程名, 文本型
ZwQuerySystemInformation (#SystemProcessInformation, 0, 0, 局_所需尺寸)
局_缓冲区 = GlobalAlloc (64, 局_所需尺寸)
局_返回值 = ZwQuerySystemInformation (#SystemProcessInformation, 局_缓冲区, 局_所需尺寸, 局_所需尺寸)
.如果真 (局_返回值 = 0)
局_下条数据 = 局_缓冲区
CopyMemory_system_process_information (局_系统进程, 局_缓冲区, 184)
.判断循环首 (局_系统进程.NextEntryDelta ≠ 0)
局_下条数据 = 局_下条数据 + 局_系统进程.NextEntryDelta
CopyMemory_system_process_information (局_系统进程, 局_下条数据, 184)
局_进程名 = 编码_Unicode到Ansi (指针到字节集 (局_系统进程.ImageName.缓冲区, 局_系统进程.ImageName.长度))
.如果真 (文本比较 (局_进程名, 参_ID或名称, 假) = 0 或 到整数 (参_ID或名称) = 局_系统进程.ProcessId)
返回 (局_系统进程.InheritedFromProcessId)
.如果真结束
处理事件 ()
.判断循环尾 ()
.如果真结束
GlobalFree (局_缓冲区)
返回 (-1)
希望引入下面的子程序。
.版本 2
.子程序 进程_取父IDEx, 整数型, , 省内存
.参数 进程ID, 整数型, 可空
.局部变量 pbi, PROCESS_BASIC_INFORMATION
.局部变量 status
.局部变量 hProcess
.判断开始 (是否为空 (进程ID))
hProcess = GetCurrentProcess ()
.默认
hProcess = OpenProcess1 (1024, 假, 进程ID)
.判断结束
status = NtQueryInformationProcess (hProcess, 0, pbi, 24, 0)
返回 (pbi.Reserved3)
|
|