Erkennen, wenn meine Anwendung unter dem IDE „Delphi 2007 .Net“ läuft
-
21-08-2019 - |
Frage
Wie kann ich erkennen, ob meine Anwendung unter dem IDE „Delphi 2007 Net“ ausgeführt wird, gibt es so etwas wie DebugHook?
Bye.
Lösung
Antwort meine eigene Frage.
uses System.Diagnostics;
function IDEDelphiNetRunning:Boolean;
Begin
Result:=Debugger.IsAttached;
End;
funktioniert gut für mich.
Bye.
Andere Tipps
Die IsDebuggerPresent () WinAPI Anruf.
So etwas wie:
Function IDEIsRunning : boolean;
begin
result := DebugHook <> 0;
end;
Könnte Anzug.
Die JEDI JclDebug.pas Einheit enthält folgende Möglichkeiten:
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;
Ich fand diese allgemeinere Antwort von embarcadero
Mit dem IsDebuggerPresent()
WinAPI Anruf.
Beispiel in C ++:
if (IsDebuggerPresent())
Label1->Caption = "debug";
else
Label1->Caption = "no debug";
function IsDebugMode():Boolean;
begin
Result:=False;
{$IFDEF DEBUG}
Result:=True;
{$ENDIF}
end;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow