Seite 3 von 3
Verfasst: 02.11.2004 16:19
von Andre
Danilo hat geschrieben:Kannste ja Fred mal sagen, er soll sich nicht so anstellen...

Werde ich dann mal postwendend tun, "mit freundlichen Grüßen von Danilo" sozusagen...
[Edit] Habe Fred auf Kurs gebracht, Dank von ihm an Dich
(Was er jedoch trotzdem noch überprüfen muss: "I don't know if it will work in every case ..... the app can be in several PATH directories")
Verfasst: 17.10.2005 08:36
von Toshy
Hallo.
Ist ja schon lange her als dieser Beitrag geschrieben wurde.
Wie sieht es aktuell aus mit den Verzeichnisspfaden? in Version 3.94 ist ja auch noch nichts drinn. Weiß du Andre was neues oder jemand anderes? Wie kann man denn nun sicher den Programmpfad und aktuellen Pfad rausbekommen (besonders unter Linux).
Werden die neuen funktionen nun noch in Purebasic eingebaut?
Lieber Gruß
Toshy
Verfasst: 17.10.2005 12:53
von ts-soft
?

Verfasst: 17.10.2005 14:20
von MVXA
Also ich habe meine Funktion so umgeschrieben und Deeems Code eingefügt,
dass ich nun sicher unter Linux und Windows den aktuellen Pfad des Programms
ermitteln kann. Hab das ganze noch bischen lesbarer für mich geschrieben <_<.
Hier der Code:
Code: Alles auswählen
Procedure.s GetAppDir()
DefType.l lngBuffer, lngLen
DefType.s strOut
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
lngBuffer = AllocateMemory(#MAX_PATH + 1)
GetModuleFileName_(#Null, lngBuffer, #MAX_PATH)
strOut = GetPathPart(PeekS(lngBuffer))
If Right(strOut, 1) <> "\": strOut + "\": EndIf
FreeMemory(lngBuffer)
CompilerCase #PB_OS_Linux
lngBuffer = AllocateMemory(2048+1)
lngLen = Readlink_("/proc/" + Str(getpid_()) + "/exe", lngBuffer, 2048)
strOut = GetPathPart(PeekS(lngBuffer, lngLen))
CompilerEndSelect
ProcedureReturn strOut
EndProcedure
Procedure.s GetAppName()
DefType.l lngBuffer
DefType.s strOut
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
lngBuffer = AllocateMemory(#MAX_PATH + 1)
GetModuleFileName_(#Null, lngBuffer, #MAX_PATH)
strOut = GetFilePart(PeekS(lngBuffer))
FreeMemory(lngBuffer)
CompilerCase #PB_OS_Linux
lngBuffer = AllocateMemory(2048+1)
lngLen = Readlink_("/proc/" + Str(getpid_()) + "/exe", lngBuffer, 2048)
strOut = GetFilePart(PeekS(lngBuffer, lngLen))
CompilerEndSelect
ProcedureReturn strOut
EndProcedure