Seite 1 von 3
dateifpad von datei aus ermitteln
Verfasst: 15.05.2007 22:06
von cofter
Hi zusammen,
ich möchte gern den Pfad einer Datei ermitteln den ich nicht kenne bzw. kenn ich nur das Verzeichnis wo die Datei liegt
bekannt ist \meinProgramm\start.exe
wie bekomme ich den rest raus damit ich einen absoluten Pfad bekomme?
hoffe ihr könnte mir auf die sprünge helfen.
mfg
Verfasst: 15.05.2007 22:13
von Fluid Byte
In welcher Situation kriegst du denn nur den "halben" Pfad?
Verfasst: 15.05.2007 22:26
von cofter
Ich weiss in welchen Ordner mein Programm liegt nur weiss ich nicht den kompletten absoluten Pfad weil ich noch eine exe aufrufen muss und runProgram() will ja immer nen absoluten Pfad haben.
Verfasst: 15.05.2007 22:28
von Fluid Byte
Ich weiss in welchen Ordner mein Programm
Woher? Und dann kennst du nicht den ganzen Pfad? Kannst du die .EXE während Laufzeit laden? Dann wäre es einfach.
Verfasst: 15.05.2007 22:29
von ts-soft
Wenn der Pfad relativ zu Deiner Exe ist so:
Code: Alles auswählen
Procedure.s GetExePath()
Protected Result.s
If LCase(GetPathPart(ProgramFilename())) = LCase(#PB_Compiler_Home + "Compilers\")
Result = GetCurrentDirectory()
Else
Result = GetPathPart(ProgramFilename())
EndIf
If Right(Result, 1) <> "\" : Result + "\" : EndIf
ProcedureReturn Result
EndProcedure
RunProgram(GetExePath() + "meinProgramm\start.exe")
Verfasst: 15.05.2007 22:51
von cofter
Erstmal danke ts-soft für den Code, leider scheint er bei mir nicht zu funktionieren.
Hier mal mein kompletter Code.
Code: Alles auswählen
Procedure.s GetExePath()
Protected Result.s
If LCase(GetPathPart(ProgramFilename())) = LCase(#PB_Compiler_Home + "Compilers\")
Result = GetCurrentDirectory()
Else
Result = GetPathPart(ProgramFilename())
EndIf
If Right(Result, 1) <> "\" : Result + "\" : EndIf
ProcedureReturn Result
EndProcedure
Open_SolaniaUpdater()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
If GadgetID = #ProgressBar_0
ElseIf GadgetID = #B_launch
;RunProgram("c:\Solania\Solania_005\Solania.exe")
RunProgram(GetExePath() + "Solania_005\Solania.exe")
quit = 1
ElseIf GadgetID = #B_quit
quit = 1
ElseIf GadgetID = #Web_0
EndIf
EndIf
Until Event = #PB_Event_CloseWindow Or quit = 1 ; End of the event loop
End
;
Verfasst: 16.05.2007 07:32
von DrShrek
cofter hat geschrieben:
;RunProgram("c:\Solania\Solania_005\Solania.exe");
Du weisst doch den Pfad...also warum so umständlich?
Verfasst: 16.05.2007 07:38
von cofter
Das war ein Test ob runProgram() macht was es soll.

Verfasst: 16.05.2007 07:48
von DrShrek
cofter hat geschrieben:Das war ein Test ob runProgram() macht was es soll.

Und Test bestanden?
Verfasst: 16.05.2007 07:52
von cofter
Ja... nur muss ich den absoluten Pfat ermitteln weil ich net weiss wo jemand anders das Programm installiert.