Wie kann ich das momentan aktive Verzeichniss ermitteln?
Antwort:
Das kannst Du mit folgender Prozedur machen:
Code: Alles auswählen
Procedure.s GetCurrentDirectory()
String.s = Space(2048)
GetCurrentDirectory_(2048, @String)
ProcedureReturn String
EndProcedure
MessageRequester("",GetCurrentDirectory(),0)
Achtung!
Der obige Code gibt das momentan aktive Verzeichniss zurück -
ist aber nicht dazu geeignet den Pfad des eigenen Programmes
zu ermitteln!
Um dies zu tun: (WinAPI) Pfad + Name des eigenen Programms feststellen
Wenn die erstellte .EXE zum Beispiel 'c:\programme\cool\test.exe'
ist, dann ist der Pfad des eigenen Programmes 'c:\programme\cool\'.
Die obige Procedure liefert aber ein falsches Ergebniss, falls der
User das Programm von der Konsole aus aufruft.
Beispiel:
Der User befindet sich in der Konsole auf c:\ und tippt:
C:\> c:\programme\cool\test.exe
das Ergebniss der obigen Procedure: "c:\" - da dies das aktuelle
Verzeichniss ist.
Ich sage das hier nochmal so deutlich, da viele Leute fälschlicherweise
den obigen Weg benutzen.
Habe ich schon mehrfach gesehen... und ist eindeutig ein Fehler
im Programm - der halt erst auftaucht wenn man es nicht durch
Doppelklick aufruft (Konsole,Batch etc..).