Programm Verzeichniss herausfinden
Programm Verzeichniss herausfinden
Wie finde ich das Verzeichniss raus in dem meine Exe ist?
Geht das überhaupt?
Geht das überhaupt?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Versuche es mal mit der Boardsuche, die Frage wurde schon öfter gestellt 

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Jup, das geht 
bei den "" musst du, solange du dein Programm nicht für den Fertigen gebrauch compilierst den Passenden Pfad halt angeben, da es ja im PB-Compilerordner liegt. Solange muss #exe dann auch 0 sein.

Code: Alles auswählen
Procedure.s ExePath()
CompilerIf #exe=1
ExePath2.s = Space(1000)
GetModuleFileName_(0,@ExePath2,1000)
CompilerElse
ExePath2.s=""
CompilerEndIf
ProcedureReturn GetPathPart(ExePath2.s)
EndProcedure
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden 

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Geht auch ohne wenn und aber

Code: Alles auswählen
Procedure.s GetExePath()
Prg.s = Space(#MAX_PATH)
GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH)
Prg = GetPathPart(Prg)
If (FindString(prg,"\PureBasic\Compilers\", 1))
Prg.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH,@Prg)
EndIf
If Right(Prg, 1) <> "\" : Prg + "\" : EndIf
ProcedureReturn Prg
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

moin, moin...
Und warum reicht nicht einfach sowas ?
tia...
scholly
Und warum reicht nicht einfach sowas ?
Code: Alles auswählen
getprogdir:
;{
buffer.s = Space(1000)
GetCurrentDirectory_(1000,@buffer)
progdir$ = buffer
startprefs$ = progdir$ + "\prefs\last.prefs"
Debug startprefs$
;}
Return ;getprogdir
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
hallo!
wofür steht die Konstante #MAX_PATH ?
Wie viele Zeichen ein Pfad (OS abhänhig) maximal haben kann?
wofür steht die Konstante #MAX_PATH ?
Wie viele Zeichen ein Pfad (OS abhänhig) maximal haben kann?
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Äh... aber das benutzt TS-soft in seinem code doch auchKaeru Gaman hat geschrieben:weil die current in einem mutitasking-system von einem anderen task verändert werden kann...Und warum reicht nicht einfach sowas ?

bis denne...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
ja, aber nur wenn die Exe in der IDE ausgeführt wird, weil dann der PBCompiler CurrentDirectory auf den gesuchten Pfad setzt. Das Compilers-Verzeichnis, wo sich die Exe in diesem Fall ja befindet wird im allgemeinen nicht gebraucht
#MAX_PATH sind 260
In diesem Fall sollte man es evtl. erhöhen, da Pfad + Filename grösser sein könnten.
Unter Windows wären vieleicht 1024 sinnvoll, unter Linux doppelt soviel

#MAX_PATH sind 260
In diesem Fall sollte man es evtl. erhöhen, da Pfad + Filename grösser sein könnten.
Unter Windows wären vieleicht 1024 sinnvoll, unter Linux doppelt soviel
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
