我有以下函数,用于检查我的代码是否从 IDE 运行 真正令人沮丧的是,即使代码是从 IDE 运行的,该函数有时也会返回 False。事实上,我找不到什么时候工作正常、什么时候不工作的任何共同点 任何人都知道如何修复此功能或执行此检查的整个其他方法。 (我使用该函数制作一个菜单,其中包含开发期间可用的测试功能,并将其隐藏给最终用户)
function IDERunning: Bool;
begin
Result := (FindWindow('TAppBuilder', nil) > 0) and
(FindWindow('TPropertyInspector', 'Object Inspector') > 0);
end;
我使用Delphi XE8
最佳答案
这取决于您想要测试的内容:
- 使用
IsDebuggerPresent
测试是否有任何用户模式调试器附加到您的进程。 - 测试是否
DebugHook
非零来确定程序正在Delphi IDE调试器下运行。
请注意,当 DebugHook
为非零时,IsDebuggerPresent
将返回 true,但反之并非总是如此。除了 IDE 调试器之外,还有其他调试器。
关于delphi - 如何检测代码是否从 IDE 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33775555/