IsDebuggerPresent
CheckRemoteDebuggerPresent
DebugActiveProcess
zu
IsDebuggerPresent findet man in der
DP viele Beiträge
und auch auf Luckies Webseite gibt es ein Beispiel und ich glaub auch noch einen Artikel.
Zitat:
Das heißt mit einem Kompilerschalter wird es nicht funktionieren, da er zur compiletime nicht weiß ob er debuggen wird.
Außerdem ist es uninteressant, ob beim Kompilieren ein Debugger vorhanden war ... ob der das Zurlaufzeit noch ist, ist damit ja nicht gesagt.
(abgesehn, daß eigentlich fast immer ein Debugger vorhanden ist, wärend du in der Delphi-
IDE dein Programm kompilierst)
[add]
Ob ein Debugger läuft kannst du also niemals beim Kompilieren auswerten.
Aber z.B. neuere Delphis kennen mehrere Projektoptionen/Profile und beim Debug-Profil wird ein Compilerschalter "DEBUG" gesetzt, welcher über {$IFDEF DEBUG} genutzt werden kann.
Bei älteren Delphis mußt du diesen in den Projektoptionen selber setzen.
Achtung: Solche Optionen gelten nur für neukompilierte Dateien, also Strg+F9 nicht vergessen, nachdem das umgestellt wurde.
Also entweder du nutzt unterschiedliche Compilerprofile, welche aber nicht automatisch umschalten
oder du kannst erst zur Laufzeit prüfen und kannst keine Konstanten nutzen.