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与sqlite3数据库

Delphi通过代码实现模拟按键的函数

Delphi xe 横屏竖屏的管理

Delphi判断文件夹(目录)是否存在,不存在就创建一个

Delphi twebbrowser 获取cookie

Delphi中多线程分析详解

Delphi tms web core 获取url 参数

Delphi内嵌汇编实现�载任意进程的某个dll

Delphi windows 编程[5] - 学习窗体生成的过程五

Delphi windows 编程[15] - 菜单消息: wm_command

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



打赏

取消

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

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

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

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

评论

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