delphi 检查父进程


本文整理自网络,侵删。

 delphi 检查父进程 

{uses TLHelp32}
procedure CheckParentProc;
var
Pn: TProcesseNtry32;
sHandle: THandle;
ParentProc: HWND;
Found: Boolean;
begin
ParentProc := 0;

sHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
try
Found := Process32First(sHandle, Pn); //Search process
while Found do //Loop all processes
begin
if CompareText(ExtractFileName(Pn.szExeFile), ExtractFileName(ParamStr(0))) = 0 then //It's me
begin
ParentProc := Pn.th32ParentProcessID; //Get parent process ID
Break;
end;

Found := Process32Next(sHandle, Pn); //Find next
end;

if ParentProc > 0 then //Valid
begin
Found := Process32First(sHandle, Pn);
while Found do
begin
if Pn.th32ProcessID = ParentProc then //It's my parent process
begin
ParentProc := Pn.th32ParentProcessID; //Get its parent process, my grandfather process :)
Break;
end;

Found := Process32Next(sHandle, Pn); //Find next
end;

if ParentProc > 0 then
begin
Found := Process32First(sHandle, Pn);
while Found do
begin
if Pn.th32ProcessID = ParentProc then
begin
if CompareText(UpperCase(ExtractFileName(Pn.szExeFile)), 'EXPLORER.EXE') = 0 then //Grandfather process is Explorer.exe
begin
ShowMessage('Debugger detected! Doggone it all!');
Break;
end;
end;

Found := Process32Next(sHandle, Pn); //Find next
end;
end;
end;
finally
CloseHandle(sHandle);
end;
end;

相关阅读 >>

高手谈做程序员的8大基本原则

Delphi 随鼠标移动的十字线的快速画法

Delphi第三方控件通用安装方法

Delphi 在tedit中显示水印提示

Delphi 改造shellexecute 精简函数

Delphi windows 编程[10] - wm_lbuttondown、wm_lbuttonup 和 wm_mousemove 消息

Delphi trystrtoint字符转换成整数

Delphi xmldocument控件之xml

Delphi编程之win10桌面图标设置

Delphi 网上获取北京时间 tinifile.readsection 方法在 android 下的应用及各种字符编码问题

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



打赏

取消

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

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

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

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

评论

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