我有以下函数用于检查我的代码是否从IDE运行 真正令人沮丧的是,即使代码是从IDE运行的,函数也会不时地返回False。事实上,当它工作正常时,我找不到任何共同点,而事实并非如此 任何人都知道如何修复此功能或其他完成此检查的方法。 (我使用该功能在开发过程中创建一个可用测试功能的菜单,并将其隐藏给最终用户)
function IDERunning: Bool;
begin
Result := (FindWindow('TAppBuilder', nil) > 0) and
(FindWindow('TPropertyInspector', 'Object Inspector') > 0);
end;
我使用Delphi XE8
答案 0 :(得分:9)
这取决于您想要测试的内容:
IsDebuggerPresent
测试是否有任何用户模式调试程序附加到您的流程。DebugHook
是否为非零,以确定程序是否在Delphi IDE调试器下运行。请注意,当DebugHook
非零时,IsDebuggerPresent
将返回true,但反之并非总是如此。除了IDE调试器之外,还有调试器。
答案 1 :(得分:4)
可以使用Winapi.Windows
单元中的IsDebuggerPresent function。