AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IDE oder exe - Start erkennen?

Ein Thema von NoGAD · begonnen am 27. Mär 2022 · letzter Beitrag vom 28. Mär 2022
Antwort Antwort
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#1

IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 18:34
Hallo, ich weiß leider nicht genau, wie ich den Titel beschreiben soll.


Ist es möglich zu erkennen, ob ein Programm per IDE gestartet ODER per Exe-Datei gestartet wurde?

LG Mathias
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 18:54
Es ist nur wage Beschrieben was Du Wissen möchtest.
Also innerhalb deiner .exe könntest Du Dir eine PID von deinem Programm abholen und prüfen was dessen Parent-PID ist falls Du verstehst was ich meine.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 19:05
Ich denke einmal es genügt mit IsDebuggerPresent zu arbeiten. Das gibt zurück, ob das Programm im Debugger läuft.

Wenn man aus Delphi heraus ohne Debugger startet, gibt es aber natürlich False zurück. Das braucht man aber normalerweise auch nicht wissen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 20:33
Hallo Sebastian,


dein Hinweis war gut. Ich möchte einfach bei der Programmierung einige Optionen zusätzlich zum Debuggen nutzen.
Bisher habe ich das imemr über Stert - Parameter mittels Schalter gemacht und suchte eine andere Variante.

DebugHook ist dann sicherlich das, worauf Dein Hinweis hinausläuft?

Das hier https://entwickler-ecke.de/topic_Fes...t_78079,0.html habe ich dann gefunden.

Wenn ich nun aber eine programmweite, globale Variable definiere, wird die in der initialization - Sektion nicht berücksichtigt. Das heißt, DebugHook funktioniert dort gar nicht.

Wo sollte ich meine Variable also korrekt initialisieren?



Edit: Nachdem ich die Variable direkt in der Unit, in der ich sie deklariert habe, unter initialization zugewiesen habe, funktioniert es perfekt.

Vielen Dank!


LG Mathias
Mathias
Ich vergesse einfach zu viel.

Geändert von NoGAD (27. Mär 2022 um 20:53 Uhr) Grund: Fehler gefunden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 22:02
Du brauchst keine Variable oder irgendetwas anderes. Delphi bietet die Funktion IsDebuggerPresent (aus der Windows API) an. Du musst sie nur nutzen:
Delphi-Quellcode:
if IsDebuggerPresent then
  ShowMessage('Debug Meldung');
Du musst lediglich die Unit Winapi.Windows in deiner uses haben.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: IDE oder exe - Start erkennen?

  Alt 27. Mär 2022, 23:42
Dankeschön

LG und eine schöne Woche!
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: IDE oder exe - Start erkennen?

  Alt 28. Mär 2022, 09:14
Übrigens noch ein Tipp, auch für spätere Leser des Threads:
Auf diese Weise kann man auch einen Dienst debuggen. Dafür startet man die IDE mit Adminrechten, fügt nach dem begin in der .dpr oder in initialization eine Schleife, die auf den Debugger wartet, ein, startet den Dienst und verbindet sich damit. So kann man auch Probleme beim Starten eines Dienstes debuggen.
Delphi-Quellcode:
while not IsDebuggerPresent do
  Sleep(50);
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.447 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: IDE oder exe - Start erkennen?

  Alt 28. Mär 2022, 10:02
Ich möchte einfach bei der Programmierung einige Optionen zusätzlich zum Debuggen nutzen.
Bisher habe ich das imemr über Stert - Parameter mittels Schalter gemacht und suchte eine andere Variante.
In etlichen Bereichen der Softwareentwicklung benutzt man dazu FeatureFlags. Vielleicht wäre das ein Alternative.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz