Betriebssystem ermitteln

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

Moderator: Moderatoren

gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Betriebssystem ermitteln

Beitrag von gripslund »

Guten Morgen,

ist es möglich per Makro zu ermitteln, ob ich unter Linux oder Windows arbeite? Und wenn ja, wie muss ich das machen?

Vielen Dank

gripslund
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey gripslind,

ja, zumindest indirekt. der Basic-Befehl

Code: Alles auswählen

msgbox getGuiTyp()
liefert dir eine Kennzahl zurück, die den aktuellen GUI-Typ bestimmt. Dabei steht:
1 - für Windows (keine weitere Versionsunterschidung möglich)
2 - (wird nicht mehr unterstützt (stand mal für OS2)
3 - Mac OS
4 - Linux/Unix OS - keine weiter Unterscheidung möglich
-1 - undefiniert, nicht erkennbar, ....

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Beitrag von gripslund »

Hallo,

ich habe das eben mal ausprobiert. Aber: weder Linux noch Windows lassen sich ermitteln. Bei beiden Systemen bekomme ich 'ne 0 (Null) zurück.

Code: Alles auswählen

Dim OSfrage as Integer
OSfrage=GetGuiTyp()
print OSfrage
msgbox GetGuiTyp()
Bei beiden Ausgabevarianten "0" bzw. leer. Habe ich etwas nicht beachtet?

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

Beitrag von komma4 »

Laut F1 Hilfe wird ein Integer zurück gegeben.

Nach Ermittlung des GUI-Typs lassen sich spezifische Kommandos ausführen, bspw.:

Code: Alles auswählen

Sub GUI_Test
' 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"
		
		' die folgenden Abfragen funktionieren hier auf SuSE 9.3
		
		'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

msgbox "Diese OpenOffice.org läuft unter: " & s_OS ,, "OOo Makro: Betriebssystem ermitteln"


End Sub
Geht DAS bei Dir?
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)
gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Beitrag von gripslund »

Hallo Winfried,

ja DAS geht bei mir :D .
Ich habe mich nochmal hingesetzt und nach Unterschieden bezüglich der zu verwendenden Befehle geschaut, und jetzt geht meine kleine Variante auch!!! Der Fehler kommt in meinem Fall von SORRY!!! Toxitom. Sicher nicht beabsichtigt, aber es gibt einen kleinen Unterschied, den ich entdeckt habe.
Toxitom und ich:

Code: Alles auswählen

getGuiTyp()
und Du:

Code: Alles auswählen

GetGUIType()
Wobei es nicht die Groß-/Kleinschreibung ist, sondern das "e". Ich habe 'ne Weile gesucht. Aber das passiert halt. Niemand ist fehlerlos.
Jetzt geht es aber wie schon oben erwähnt.
Vielen Dank an Toxitom und Winfried.

gripslund
gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Beitrag von gripslund »

Nachtrag.

Auch unter WinXP-SP2 mit OOo2.0.3 getestet: läuft. Die Env.-Variablen bezüglich SuSE9.3 gehen auch unter SuSE10.0, OOo2.1.

gripslund
Antworten