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