delphi 如何检测代码是否从IDE运行

0s0u357o  于 2023-08-04  发布在  其他
关注(0)|答案(3)|浏览(136)

我有下面的函数,我用来检查我的代码是否从IDE运行。真正令人沮丧的是,即使代码是从IDE运行,函数不时返回False。事实上,我找不到任何共同点,当它工作正常时,当它不工作时,任何人都有一个想法,如何修复这个功能,或一个完整的其他方法来做这个检查。(我使用该函数在开发过程中创建一个包含测试功能的菜单,并将其隐藏给最终用户)

function IDERunning: Bool;
begin
  Result := (FindWindow('TAppBuilder', nil) > 0) and
    (FindWindow('TPropertyInspector', 'Object Inspector') > 0);
end;

字符串
我使用 Delphi XE8

iezvtpos

iezvtpos1#

这取决于你想测试什么:

  • 使用IsDebuggerPresent测试进程是否附加了用户模式调试器。
  • 测试DebugHook是否为非零,以确定程序是否在 Delphi IDE调试器下运行。

请注意,当DebugHook为非零时,IsDebuggerPresent将返回true,但情况并非总是如此。除了IDE调试器之外,还有其他调试器。

sdnqo3pr

sdnqo3pr2#

可以使用Winapi.Windows单元中的IsDebuggerPresent function

axzmvihb

axzmvihb3#

对于那些来这里寻找VisualStudioIDE检测的人,可以使用System.Diagnostics.Debugger.IsAttached。

if (System.Diagnostics.Debugger.IsAttached)
    {
        // code for use while in IDE here...
    }

字符串

相关问题