Wie kann mein Programm erkennen, wenn Delphi läuft?
Ich habe gehört, dass einige benutzerdefinierte Komponente verwenden Autoren ein RTL-routine, die prüft, um zu sehen, wenn Delphi läuft, um die shareware-Einschränkungen. Weiß jemand, was diese routine ist? Überprüfung der offensichtlichen Namen wie "DelphiRunning" oder "IsDelphiRunning" lässt sich nicht einschalten, etwas sinnvolles.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es 2 unterschiedliche Ideen hier:
- Delphi wird ausgeführt
- Die Ausführung der Anwendung unter dem debugger
Den gemeinsamen Weg, um zu testen, ob Delphi läuft ist zu überprüfen, die Anwesenheit des bekannten IDE-Fenster, die eine bestimmte Klassennamen wie TAppBuilder oder TPropertyInspector.
Diese 2 Werke in allen Delphi-version IIRC.
Wenn Sie wissen möchten, ob Ihre Anwendung unter dem debugger, also startete wie gewohnt in der IDE mit "Ausführen" (F9) oder an den debugger, während bereits ausgeführt wird, Sie müssen nur zum testen der DebugHook Globale variable.
Beachten Sie, dass "Trennen aus dem Programm" entfernt nicht die DebugHook Wert, aber "an den Prozess Anhängen" setzt Sie.
Wenn das Ziel ist, beschränken Sie die Nutzung einer Testversion Ihrer Komponente zu, wenn die Anwendung wird entwickelt, beide haben Fehler:
- Versteckte windows mit den richtigen Classname/Titel enthalten, können bei der Anwendung
- DebugHook kann manuell im code festgelegt
- DebugHook can be manually set in the code
kurz gesagt, sowohl die Fehler,die Abhilfe?DebugBreak
oderasm int 3 end
und es gibt keinen wirklichen debugger...Können Sie DebugHook <> 0, die von der Komponente code. DebugHook ist eine Globale variable (wenn ich mich Recht erinnere, ist es in den Systemen der Einheit), das von der Delphi/RAD Studio-IDE, und konnte nicht von irgendwo sonst.
Gibt es andere Techniken (FindWindow() für TAppBuilder, zum Beispiel), aber DebugHook nimmt alles von der Arbeit aus ihm heraus.
Dies ist ein code-snippet aus http://www.delphitricks.com/source-code/misc/check_if_delphi_is_running.html.