Moin,
gibt es ein Befehl welcher mir sagt ob ich das Programm aus der IDE gestartet habe?
Oder nutzt Ihr da nur diese Compiler Optionen?
Ich möchte zur Laufzeit eine Unterscheidung zwischen Entwickler und User.
Heraus finden ob von IDE gestartet wurde
Heraus finden ob von IDE gestartet wurde
OS = Win. 10 Pro : PB = 5.73 : PC = X300
Re: Heraus finden ob von IDE gestartet wurde
Moin,
Über das menue Compiler/Compiler-Optionen/kompilieren\Sarten kann man eine kommandozeilen parameter mitgeben.
Vor dem Erstellen einer .exe, einfach einen entsprechenden Parameter, zB exe, eingeben, beim Sart aus der IDE zB IDE, und im Code den Parameter abfragen.
Et voila, Progamm weiss was Programmierer wünscht!
Über das menue Compiler/Compiler-Optionen/kompilieren\Sarten kann man eine kommandozeilen parameter mitgeben.
Vor dem Erstellen einer .exe, einfach einen entsprechenden Parameter, zB exe, eingeben, beim Sart aus der IDE zB IDE, und im Code den Parameter abfragen.
Et voila, Progamm weiss was Programmierer wünscht!
Zuletzt geändert von Olafmagne am 15.03.2022 11:08, insgesamt 1-mal geändert.
Unsinnige Anweisungen von Seiten des Chef's lösen grundsätzlich ein "Syntax Error" bei mir aus
OS=Linux Zorin
PureBasic 6.xx
OS=Linux Zorin
PureBasic 6.xx
Re: Heraus finden ob von IDE gestartet wurde
Da der Debugger ja nicht mit in die Exe kompiliert wird, könnte man es auch so versuchen:
Code: Alles auswählen
Global IsExe = #True
Procedure TestIfIsExe()
IsExe = #False
EndProcedure
Debug TestIfIsExe()
MessageRequester("", Str(IsExe))
a²+b²=mc²
Re: Heraus finden ob von IDE gestartet wurde
Das wären wohl die praktikabelsten Möglichkeiten; etwas aufbeläht in meinen Worten zusammengefasst:
Bei den Compiler Optionen zum Source (ggf. in den Projekteigenschaften wenn das ein Projekt ist) kannst Du dann Startparameter für deine aus der IDE gestarteten Programme hinzufügen. Im Menü Compiler -> Compiler Options -> Kompilieren/Starten -> Executable-Kommandozeile einfach direkt die Parameter hinschreiben. Du könntest einen Startparameter einfügen und abfragen "--developer" oder "-dev". Dann würdest Du vermutlich im Code einen fest-programmierten Pfad nutzen...
Des Weiteren lässt sich in der selben Maske unter "Aktuelles Verzeichnis" ein alternativer Pfad eintragen. Also den Developer Pfad - dann brauchst Du den auch nicht mehr fest einprogrammieren und ggf. brauchst Du auch keinen Startparameter (aber doppelt gemoppelt hält besser).
Du kannst auch prüfen ob der Debugger an ist mit #PB_Compiler_Debugger.
Ansonsten müsstest Du mit GetCurrentDirectory() und/oder ProgramFilename() prüfen ob der Pfad einem Installationspfad entspricht; dein Executable kann, sofern kein Verzeichnis angegeben wurde, in mindestens drei verschiedenen Verzeichnissen ausgeführt werden (Source Verzeichnis, Temp, PB Wurzel- oder Kompilerverzeichnis), je nachdem wo das Ziel-Executable erzeugt wird. Daher auch das Häkchen mit "Temporäres Executable im Quellcode-Verzeichnis erstellen". Ist mMn komplizierter als Parameter und/oder Verzeichnis in der Compiler Options Maske einzutragen, und später abzufragen; und hübscher weil keine hardgecodeten lokalen Entwickler-Pfade im Executable verbleiben.
Bei den Compiler Optionen zum Source (ggf. in den Projekteigenschaften wenn das ein Projekt ist) kannst Du dann Startparameter für deine aus der IDE gestarteten Programme hinzufügen. Im Menü Compiler -> Compiler Options -> Kompilieren/Starten -> Executable-Kommandozeile einfach direkt die Parameter hinschreiben. Du könntest einen Startparameter einfügen und abfragen "--developer" oder "-dev". Dann würdest Du vermutlich im Code einen fest-programmierten Pfad nutzen...
Des Weiteren lässt sich in der selben Maske unter "Aktuelles Verzeichnis" ein alternativer Pfad eintragen. Also den Developer Pfad - dann brauchst Du den auch nicht mehr fest einprogrammieren und ggf. brauchst Du auch keinen Startparameter (aber doppelt gemoppelt hält besser).
Du kannst auch prüfen ob der Debugger an ist mit #PB_Compiler_Debugger.
Ansonsten müsstest Du mit GetCurrentDirectory() und/oder ProgramFilename() prüfen ob der Pfad einem Installationspfad entspricht; dein Executable kann, sofern kein Verzeichnis angegeben wurde, in mindestens drei verschiedenen Verzeichnissen ausgeführt werden (Source Verzeichnis, Temp, PB Wurzel- oder Kompilerverzeichnis), je nachdem wo das Ziel-Executable erzeugt wird. Daher auch das Häkchen mit "Temporäres Executable im Quellcode-Verzeichnis erstellen". Ist mMn komplizierter als Parameter und/oder Verzeichnis in der Compiler Options Maske einzutragen, und später abzufragen; und hübscher weil keine hardgecodeten lokalen Entwickler-Pfade im Executable verbleiben.
Re: Heraus finden ob von IDE gestartet wurde
Danke euch allen.
Ist alles nützlich
Ist alles nützlich

OS = Win. 10 Pro : PB = 5.73 : PC = X300
Re: Heraus finden ob von IDE gestartet wurde
Das mit der Debugger-Abfrage ist jedoch kein eindeutiges Zeichen dafür, dass ein Programm aus der IDE gestartet wurde.
(1) Ich kann eine EXE mit pbcompiler und aktiviertem DEBUGGER erzeugen und auch mit externem Debugger starten.
(2) Ein Programm kann aus der IDE auch ohne DEBUGGER gestartet werden.
Das eindeutigste ist die genannte Möglichkeit in der IDE in den Compiler-Optionen einen Startparameter "--StartedWithIDE" zu setzen und zu überprüfen.
Es gibt aber noch eine weitere Möglichkeit:
Wenn Ihr die Umgebungsvariable PUREBASIC_HOME im System nicht selbst setzt, dann könnt ihr im PB-Programm prüfen, ob diese existiert. Diese wird von der IDE auf das Verzeichnis gesetzt, in dem sich die IDE purebasic.exe befindet.
(1) Ich kann eine EXE mit pbcompiler und aktiviertem DEBUGGER erzeugen und auch mit externem Debugger starten.
(2) Ein Programm kann aus der IDE auch ohne DEBUGGER gestartet werden.
Das eindeutigste ist die genannte Möglichkeit in der IDE in den Compiler-Optionen einen Startparameter "--StartedWithIDE" zu setzen und zu überprüfen.
Es gibt aber noch eine weitere Möglichkeit:
Wenn Ihr die Umgebungsvariable PUREBASIC_HOME im System nicht selbst setzt, dann könnt ihr im PB-Programm prüfen, ob diese existiert. Diese wird von der IDE auf das Verzeichnis gesetzt, in dem sich die IDE purebasic.exe befindet.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)