回答
回答我自己的問題。
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. 在Windows 7上運行Delphi 2007和Delphi 2010 IDE是否存在問題?
- 5. 如何檢測我的應用程序是否在兼容模式下運行?
- 6. 檢測Windows進程和應用程序是否正在運行
- 7. 檢測我的Web應用程序是否正在iPad設備上運行
- 8. 如何檢測我的應用程序是否正在運行EarlGrey測試?
- 9. 檢測應用程序是否在遠程應用程序中運行
- 10. 是否可以檢測應用程序或應用程序擴展是否在「縮放」模式下運行?
- 11. 我可以檢測我的Windows 8應用程序是否正在運行?
- 12. 檢測Android應用程序是否在後臺運行
- 13. android如何檢測應用程序是否在過去運行
- 14. 檢測Flask應用程序是否在本地運行
- 15. 如何檢測應用程序是否正在運行Cloud9?
- 16. 檢測用戶是否有全屏運行的應用程序
- 17. 測試.NET應用程序是否以完全信任運行
- 18. 檢查我的應用程序是否在Android中運行
- 19. 如何檢測我的應用程序是否在Heroku上運行?
- 20. 檢測應用程序在後臺運行時是否按下主頁按鈕
- 21. 如何檢測導軌應用程序是否在Unicorn下運行?
- 22. 檢測到在iOS下的Delphi應用程序已停用
- 23. 檢測.NET應用程序是在Azure還是在非Azure環境中運行
- 24. 檢測是否在launchd下運行
- 25. 如何檢查我的應用程序是否在全屏模式下運行?
- 26. 如何檢測我的COM對象是否正在使用.NET應用程序?
- 27. 檢測是否從Xcode運行Swift應用程序
- 28. 如何檢測應用程序是否從DVD運行?
- 29. 用Mono構建的應用程序是否在.NET上運行?
- 30. 我可以檢測到應用程序是否在兒童區運行?
這不是真正的問題的答案不過,因爲運行的Delphi下的應用程序和在其他調試器下運行它不能通過這種方式進行區分。也許這對於OP來說並不重要,但是這個問題應該有不同的措辭。在System.Diagnostics中還有Debugger.Is附加,無需調用Windows API。 – mghie 2009-06-30 04:18:04