Abfrage des jeweiligen Betriebssystems?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Abfrage des jeweiligen Betriebssystems?

Beitrag von Stephan »

http://www.oooforum.org/forum/viewtopic ... ing+system

würde aber wohl für Deine Unterscheidung auch reichen einen Pfad ausgeben zu lassen, der überall vorhanden sein muß und den verwendeten Pfadtrenner zu ermitteln:

etwa das Verzeichnis des aktuellen OOo-users:

Code: Alles auswählen

aService = CreateUnoService("com.sun.star.util.PathSubstitution") 
sUserPath = aService.substituteVariables("$(user)", true) 
x = ConvertFromURL(sUserPath)
durchsuche x nach "/" und "\", kommt "\" vor bist Du unter Windows, kommt "/" vor unter Linux


Gruß
Stephan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfrage des jeweiligen Betriebssystems?

Beitrag von komma4 »

Also, ich nehme GetGUIType() [ist eine "ganz einfache" BASIC-Laufzeitfunktion]

Code: Alles auswählen

' Operating System
' Betriebssystem anhand des verwendeten Fenster-Managers ermitteln

l_OS_Index = GetGUIType()

Select Case l_OS_Index
	Case 1
		s_OS = "Windows"
		s_rechnername = Environ("COMPUTERNAME")
		s_benutzername = Environ("USERNAME")
		s_benutzerdomain = Environ("USERDOMAIN")

	Case 3
		s_OS = "MacOS"
	
	Case 4
		s_OS = "Linux"
		's_benutzerhome = Environ("HOME")
 		'msgbox s_benutzerhome
 		's_hostname = Environ("HOSTNAME")
		'msgbox s_hostname
 		's_hosttype = Environ("HOSTTYPE")
		'msgbox s_hosttype
 		's_AnmeldeName = Environ("LOGNAME")
		'msgbox s_AnmeldeName
		's_MaschinenTyp = Environ("MACHTYPE")
		'msgbox s_MaschinenTyp	
		's_CPU = Environ("CPU")
		'msgbox s_CPU
		's_Lang = Environ("LANG")
		'msgbox s_Lang	
		's_Pfad = Environ("PATH")
		'msgbox s_Pfad		
	Case Else
	s_OS = "unbekannter Rückgabewert für Betriebssystem" 
End Select
@Richard
führe die OS-Prüfung einmal (zentral) durch; i.d.R. wird das Ergebnis mehrfach verwendet.
Tipp: Ich verwende in solchen Fällen Konstanten, die in einem (durch die erfahrenen Benutzer änderbaren) Modul stehen.

Code: Alles auswählen

' BEISPIEL
' Browser zur Anzeige von HTML-Hilfedateien
CONST cHILFEBROWSER = "firefox"
' Editor einfache Textdateien
' Windows 
' CONST cTEXTEDITOR = "notepad"
' Linux
CONST cTEXTEDITOR = "kedit"
und dann eben

Code: Alles auswählen

Sub pgmName_doTextEditor( sDatei as String)
'...
sBefehl = cTEXTEDITOR & " " & sDatei
shell( sBefehl ) 
' ...
End Sub 
Damit können persönliche Vorlieben berücksichtigt werden. Die Anweisungen stehen natürlich in einem Modul, welches nur einmal deployt wird. Neue Konstanten werden per Mail kommuniziert (weniger als 12 Anwender, da geht das)

HTH
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten