怎么在程序里判断程序是在调试模式(比如delphi按f5时可以设试程序),还是在运行的模式(比如单独运行程序)...(30分)

  • 主题发起人 主题发起人 talent002
  • 开始时间 开始时间
T

talent002

Unregistered / Unconfirmed
GUEST, unregistred user!
记得以前不知谁说过有个函数可以测出运行程序的环境是什么的.比如:如果单独运行程序那么它的环境就是explorer.如果是在delphi里运行的就是:delphi32..<br>这个函数可以知道自己是不是在被调试.不知道哪位记得这个函数是什么?<br>或是有没有其它方法可以做到这判断自己是不是在被调试的功能.
 
api:<br>isdebugpresent
 
这个api在哪啊?怎么用?能不能说详细一点。<br>isdebugpresent
 
这样吧:<br>var<br>&nbsp; x:byte;<br>begin<br>&nbsp; asm<br>&nbsp; &nbsp; mov eax,fs:[$30]<br>&nbsp; &nbsp; mov eax,[eax+2]<br>&nbsp; &nbsp; mov x,al<br>&nbsp; end;<br>&nbsp; if x=1 then showmessage('Being debuged!!');<br>end;
 
那没有api或函数能实现这个功能吗?
 
写错了,硬是:<br>isdebugerpresent<br>难道你不认为不用api更好么?!<br>其实isdebugerpresent的代码就是我给你的那段ASM!
 
因为api比一个过程容易记嘛。<br>不过为什么我找不到你说的这个api呢?
 
...我服了你了...<br>function IsDebuggerPresent:bool; external 'Kernel32.dll';
 
判断父进程是不是EXPLORER。EXE
 
怎么判断?<br>
 
后退
顶部