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;

相关阅读 >>

Delphi fmx中获取窗口比例

Delphi打开关闭光驱

Delphi stringgrid行列的增加和删除

Delphi xe10 android 界面设计-个人心得

Delphi sysutils.wraptext - 换行

Delphi禁用,启用网卡

Delphi webbrowser执行脚本

Delphi inc函数和dec函数的用法

Delphi 泛型 tdictionary<string,string>

Delphi ios 保持设备开机状态

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



打赏

取消

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

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

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

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

评论

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