delphi 检查自己的进程的父进程


本文整理自网络,侵删。

 //检查自己的进程的父进程
procedure CheckParentProc;
var //检查自己的进程的父进程
Pn: TProcesseNtry32;
sHandle:THandle;
H,ExplProc,ParentProc:Hwnd;
Found:Boolean;
Buffer:array[0..1023]of Char;
Path:string;
begin
H:= 0;
ExplProc:= 0;
ParentProc:= 0;
//得到Windows的目录;
SetString(Path,Buffer,GetWindowsDirectory(Buffer,Sizeof(Buffer)- 1));
Path:= UpperCase(Path)+ '\Explorer.EXE';//得到Explorer的路径
//得到所有进程的列表快照
sHandle:= CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
Found:= Process32First(sHandle,Pn);//查找进程
while Found do //遍历所有进程
begin
if Pn.szExeFile = ParamStr(0) then //自己的进程
begin
ParentProc:= Pn.th32ParentProcessID;//得到父进程的进程ID
//父进程的句柄
H:= OpenProcess(PROCESS_ALL_ACCESS,True,Pn.th32ParentProcessID);
end
else if UpperCase(Pn.szExeFile)= Path then
begin
ExplProc:= Pn.th32ProcessID;//Ex plorer的PID
Found:= Process32Next(sHandle,Pn);//查找下一个
end;

//父进程不是Explorer,是调试器……
if ParentProc <> ExplProc then
begin
TerminateProcess(H,0);
while 1<>1 do
Application.MessageBox('', '', MB_OK + MB_ICONSTOP);
end;
end;
end;

相关阅读 >>

Delphi idhttp下载html的代码(含错误处理)

Delphi fdquery 验证登录

Delphi tfinddialog treplacedialog对话框在memo中的使用

Delphi idpop3收邮件

Delphi xe10 手机内部系统相关操作(手机信息、震动、剪贴板、键盘、电话、拨号)

Delphi webbrowser1 querystatuswb

Delphi 随机指定范围的字符串函数

Delphi复制文件时,如何显示进度条

Delphi format函数的用法

Delphi tadoquery 中文使用说明

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...