回答
回答我自己的問題。
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