回答
回答我自己的问题。
uses System.Diagnostics;
function IDEDelphiNetRunning:Boolean;
Begin
Result:=Debugger.IsAttached;
End;
适合我。
再见。
IsDebuggerPresent()WinAPI调用。
喜欢的东西:
Function IDEIsRunning : boolean;
begin
result := DebugHook <> 0;
end;
可能适合。
Alister,DebugHook在“Delphi 2007.Net”中不存在,所以寻找一些替代方案。 – RRUZ 2009-06-30 03:39:31
那么,我正在寻找如何做与OP完全相同的东西......但在Delphi 5中。所以很自然地,这对我来说非常合适。 :) +1 – 2010-06-14 15:10:46
这适用于Delphi 7 ;-) – NetVicious 2016-01-18 16:43:53
我发现这个更一般的答案,从embarcadero
使用IsDebuggerPresent()
WinAPI的电话。 实施例在C++:
if (IsDebuggerPresent())
Label1->Caption = "debug";
else
Label1->Caption = "no debug";
的JEDI JclDebug.pas单元包含以下内容:
function IsDebuggerAttached: Boolean;
var
IsDebuggerPresent: function: Boolean; stdcall;
KernelHandle: THandle;
P: Pointer;
begin
KernelHandle := GetModuleHandle(kernel32);
@IsDebuggerPresent := GetProcAddress(KernelHandle, 'IsDebuggerPresent');
if @IsDebuggerPresent <> nil then
begin
// Win98+/NT4+
Result := IsDebuggerPresent
end
else
begin
// Win9x uses thunk pointer outside the module when under a debugger
P := GetProcAddress(KernelHandle, 'GetProcAddress');
Result := DWORD(P) < KernelHandle;
end;
end;
function IsDebugMode():Boolean;
begin
Result:=False;
{$IFDEF DEBUG}
Result:=True;
{$ENDIF}
end;
- 1. 如何检测特定的Delphi IDE是否正在运行?
- 2. 检测应用程序是否在开发模式下运行
- 3. 检测我的应用程序是否在电话上运行
- 4. 如何检测我的应用程序是否正在运行EarlGrey测试?
- 5. 是否可以检测应用程序或应用程序扩展是否在“缩放”模式下运行?
- 6. android如何检测应用程序是否在过去运行
- 7. 检测用户是否有全屏运行的应用程序
- 8. 检查我的应用程序是否在Android中运行
- 9. 测试.NET应用程序是否以完全信任运行
- 10. 如何检测我的应用程序是否在Heroku上运行?
- 11. 检测是否从Xcode运行Swift应用程序
- 12. 如何检测我的COM对象是否正在使用.NET应用程序?
- 13. 检测我是否在SharePoint中运行
- 14. 我的应用程序不会在.net 2.0下运行,在3.5上运行
- 15. 如何检测我的程序是否在Active Directory环境中运行?
- 16. 是否可以检测到我的应用程序是否正在运行并显示在屏幕上?
- 17. 如何检测COM应用程序当前是否正在运行?
- 18. .net应用程序是否在Linux上运行?
- 19. KeyPress:如何检测用户是否在应用程序运行时按下键盘上的“向下”箭头键
- 20. 检测应用程序是否安装?
- 21. 检测swf是否正在Android应用程序的Web视图中运行?
- 22. 如何检查应用程序是否正在运行,否则运行它?
- 23. 无法在IISExpress下运行.Net Core应用程序下的VS2017
- 24. 我是否可以在.NET 4网站下运行.NET 2应用程序,并使用多个SiteBindingsEnabled
- 25. 检测我的应用程序是否正在从用户目录执行
- 26. 检测iOS应用程序是否从Apple的Testflight下载
- 27. 如何确定我是否从Visual Studio IDE运行应用程序?
- 28. .NET 2/3应用程序拒绝在.NET下运行4
- 29. .net远程处理:检测服务器是否没有运行
- 30. C#/。NET:检测程序是否作为服务或控制台应用程序运行
这不是真正的问题的答案不过,因为运行的Delphi下的应用程序和在其他调试器下运行它不能通过这种方式进行区分。也许这对于OP来说并不重要,但是这个问题应该有不同的措辞。在System.Diagnostics中还有Debugger.Is附加,无需调用Windows API。 – mghie 2009-06-30 04:18:04