Seite 1 von 1
Betriebssystemunabhängiger Speicherpfad
Verfasst: Fr, 23.07.2004 16:14
von Niels
Unter Windows kann ich mit msgbox Environ ("WinDir") das Windows Systemverzeichnis ermitteln. msgbox Environ ("Temp") bringt mir das Temp-Verzeichnis, in dem ich mal schnell rumschmieren kann. Das WinDir unter Linux nicht, war schon klar, aber auch Temp geht nicht. Gibt es eine Funktion, mit der ich unter jedem Betriebssystem einen definitiv vorhandenen Pfad ermitteln kann? Wie wäre es mit dem OO-Programmpfad?
Ciao
Niels
Verfasst: Fr, 23.07.2004 21:57
von Stephan
Wie wäre es mit dem OO-Programmpfad?
Das hier sollte funktionieren:
Code: Alles auswählen
Sub OO_programmpfad
oSettings = createUnoService("com.sun.star.frame.Settings")
oPathSettings = oSettings.getByName("PathSettings")
msgbox oPathSettings.ProgPath
End Sub
Gruß
Stephan
Verfasst: Sa, 24.07.2004 10:55
von Toxitom
hey,
Klar kann man die Umgebungsvariablen auslesen:
Code: Alles auswählen
Sub Main
msgbox environ("path")
msgbox environ("home")
msgbox environ("temp")
End Sub
Läuft Systemunabhängig, allerdings möglicherweise mit unterschiedlichen Ergebnissen. "Home" gibt es eben nur unter Linux. Aber du kannst doch mit Schleifen arbeiten.
Gruss
Thomas
Home hört sich gut an
Verfasst: So, 25.07.2004 20:21
von Niels
Für Home muss es doch auch etwas unter Windows geben um den Ordner "Eigene Dateien" zu ermitteln. Das wäre ja schick:
Code: Alles auswählen
If environ("home") = "" then
MeinPfad = environ("WindowsHome")
else
MeinPfad = environ("home")
end if
Würde das auch unter OS2 laufen, oder müsste ich da extra auf eine andere Umgebungsvariable abfragen?
Danke
Niels
Verfasst: So, 25.07.2004 21:07
von Niels
Stephan hat geschrieben:Wie wäre es mit dem OO-Programmpfad?
Das hier sollte funktionieren:
Code: Alles auswählen
Sub OO_programmpfad
oSettings = createUnoService("com.sun.star.frame.Settings")
oPathSettings = oSettings.getByName("PathSettings")
msgbox oPathSettings.ProgPath
End Sub
Gruß
Stephan
Jo, tut es, aber ich irgendwie finde ich die Home-Geschichte genial. Wenn ich das lösen könnte, dann fallen mir da so einige andere Sachen ein, die man anstellen kann. Habe mal ein wenig gegoogelt, und bin auch fündig geworden. Leider geht es nur mit DLL-Aufruf und da bin ich an meinen Grenzen. Geht das überhaupt mit OO-Basic? Und nun darf ich den Aufruf ja auch nur dynamisch definieren, denn unter Linux oder OS2 würde diese Deklaratio ja zum qualifizierten Abflug führen.
Gruß
Niels
Verfasst: Mo, 26.07.2004 00:16
von Stephan
Alle Pfade, welche unter Extras>Optionen>openOffice.org>Pfade eingetragen sind lassen sich unter Verwendung des Services
com.sun.star.util.PathSettings abfragen oder setzen. Diese Abfrage ist unabhängig vom Betriebssystem, allerdings müssen die Pfade gegebenenfalls umgewandelt werden, da die Rückgabe in der spezifischen URL-Notation von Openoffice erfolgt. Hier ist ein Beispiel für "home" oder "Eigene Dateien":
Code: Alles auswählen
Sub home
Path=createunoservice("com.sun.star.util.PathSettings")
msgbox path.work
End Sub
Gruß
Stephan
Verfasst: Mo, 26.07.2004 07:24
von Niels
Stephan hat geschrieben:Alle Pfade, welche unter Extras>Optionen>openOffice.org>Pfade eingetragen sind lassen sich unter Verwendung des Services
com.sun.star.util.PathSettings abfragen oder setzen. Diese Abfrage ist unabhängig vom Betriebssystem, allerdings müssen die Pfade gegebenenfalls umgewandelt werden, da die Rückgabe in der spezifischen URL-Notation von Openoffice erfolgt. Hier ist ein Beispiel für "home" oder "Eigene Dateien":
Code: Alles auswählen
Sub home
Path=createunoservice("com.sun.star.util.PathSettings")
msgbox path.work
End Sub
Danke, das ist doch prima. Die Umwandlung ist ja machbar. Zur Weiterverwendung in OO-Basic ist dies ja nicht nötig. Der Windows-Test war schon erfolgreich.
Ciao
Niels