Hier kannst du häufig gestellte Fragen/Antworten und Tutorials lesen und schreiben.
Danilo
-= Anfänger =-
Beiträge: 2284 Registriert: 29.08.2004 03:07
Beitrag
von Danilo » 29.08.2004 06:18
Frage :
Wie bekomme ich denn den Pfad oder den Namen meines
Programmes heraus?
Antwort :
Den Pfad Deines Programmes bekommst Du mit folgender
Prozedur raus:
Code: Alles auswählen
Procedure.s ExePath()
ExePath$ = Space(2048)
GetModuleFileName_(0,@ExePath$,2048)
ProcedureReturn GetPathPart(ExePath$)
EndProcedure
MessageRequester("",ExePath(),0)
Und das Gleiche für den EXE-Namen:
Code: Alles auswählen
Procedure.s ExeName()
ExeName$ = Space(2048)
GetModuleFileName_(0,@ExeName$,2048)
ProcedureReturn GetFilePart(ExeName$)
EndProcedure
MessageRequester("",ExeName(),0)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 16.10.2005 18:58
Und weil ichs grad gebraucht habe, die Linux-Äquivalente:
Code: Alles auswählen
Procedure.s ExePath()
Protected ExePath$, len
ExePath$ = Space(2048)
len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)
ExePath$ = Left(ExePath$,len)
ProcedureReturn GetPathPart(ExePath$)
EndProcedure
Procedure.s ExeName()
Protected ExePath$, len
ExePath$ = Space(2048)
len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)
ExePath$ = Left(ExePath$,len)
ProcedureReturn GetFilePart(ExePath$)
EndProcedure
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
MVXA
Beiträge: 3823 Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:
Beitrag
von MVXA » 16.10.2005 19:38
Frage am Rande:
Kann man in der Zeile
Code: Alles auswählen
len = readlink_("/proc/"+Str(getpid_())+"/exe",@ExePath$,2048)
nicht Str(getpid_()) durch "self" ersetzen? Ich dachte immer, dass der
Ordner "self" immer auf das eigene programm zeigt
.
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 16.10.2005 19:51
Jo, geht auch. Habs allerdings so gemacht weil ich es auch mit getppid_() (PID von Parent-Process) ausprobieren wollte.
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Andre
PureBasic Team
Beiträge: 1765 Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8 Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:
Beitrag
von Andre » 26.08.2009 19:52
Kann zufällig jemand die MacOS-Varianten dieses Codes posten?
(Denn wenn ich mich nicht total täusche, dann gibt es diese Funktionen auch mit dem mittlerweile verfügbaren PB 4.40 beta nicht nativ, oder?)
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
Beitrag
von ts-soft » 26.08.2009 20:09
MultiPlattform-mässig sollte es so gehen:
Code: Alles auswählen
Procedure.s ExePath()
ProcedureReturn GetPathPart(ProgramFilename())
EndProcedure
Procedure.s ExeName()
ProcedureReturn GetFilePart(ProgramFilename())
EndProcedure
Debug ExePath()
Debug ExeName()
Gruß
Thomas
Andre
PureBasic Team
Beiträge: 1765 Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8 Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:
Beitrag
von Andre » 26.08.2009 20:12
@ts-soft: Ich habs geahnt, dass ich was übersehen habe...
Danke!