[erledigt] GetLocalOS() ?
[erledigt] GetLocalOS() ?
moin, moin...
Gibts wirklich nirgendwo eine Funktion/Prozedur, mit der ein Programm herausfinden kann, auf welchem OS es grade läuft ?
bis denne...
scholly
Gibts wirklich nirgendwo eine Funktion/Prozedur, mit der ein Programm herausfinden kann, auf welchem OS es grade läuft ?
bis denne...
scholly
Zuletzt geändert von scholly am 21.04.2008 23:12, insgesamt 1-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Was ist mit OSVersion() zur Laufzeit
Oder CompilerIf #PB_Compiler_OS während der Compilierung
Oder CompilerIf #PB_Compiler_OS während der Compilierung
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nenene....
Ich will zur Laufzeit des Programms herausbekommen, welches OS, nicht nur welche Windows-Version; also ob WinXYZ, Linux oder MacOS, damit ich in Abhängigkeit davon z.B. ein Menü oder Gadget freigeben/sperren/verstecken kann.
...
scholly
Ich will zur Laufzeit des Programms herausbekommen, welches OS, nicht nur welche Windows-Version; also ob WinXYZ, Linux oder MacOS, damit ich in Abhängigkeit davon z.B. ein Menü oder Gadget freigeben/sperren/verstecken kann.
...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Also, das habe ich jetzt mal nicht verstanden.
Aber wie willst du mit einem Windowsprogramm feststellen, ob du Linux oder andere OS-Betriebssystem als Grundlage hast, wenn es schon mal nicht läuft?
Bei jeder OS-Version benutzt du ja auch ein eigenes abhängiges Purebasic,
welches auch genau zu diesem OS dein Programm kompiliert. Damit ist doch schon gegeben welches OS du hast.
Aber wie willst du mit einem Windowsprogramm feststellen, ob du Linux oder andere OS-Betriebssystem als Grundlage hast, wenn es schon mal nicht läuft?
Bei jeder OS-Version benutzt du ja auch ein eigenes abhängiges Purebasic,
welches auch genau zu diesem OS dein Programm kompiliert. Damit ist doch schon gegeben welches OS du hast.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Den Code mußte sowieso auf jeder Plattform selbst erstellen, solange Crosscompiling nicht möglich ist!
Um denselben Code auf verschiedenen Plattformen zu kompilieren, mußte eben dieses verwenden:
OS-Unabhängig durch Verzicht auf API ist blödsinn, da ist man viel zu sehr eingeschränkt. Compilerdirektiven und die API des jeweiligen OSses benutzen, ist der einzige Weg zu prof. unabhängigen Programmen
Um denselben Code auf verschiedenen Plattformen zu kompilieren, mußte eben dieses verwenden:
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_AmigaOS
; AmigaCode
CompilerCase #PB_OS_Linux
; PinguinCode
CompilerCase #PB_OS_MacOS
; ApfelCode
CompilerCase #PB_OS_Windows
; FensterCode
CompilerEndSelect
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ich schreib ein Programm, das auf allen 3 BS (AmigaOS entfällt) laufen soll. Den Code will ich freigeben, damit nicht nur WinTendo-User was davon haben. Es gibt allerdings einige Sachen, die ich in meiner Win-Exe haben will, weil ich bequem bin, z.B. CD/DVD öffnen/schließen. Im Source will ich nun _im Prinzip_ sowas machen:Falko hat geschrieben:Also, das habe ich jetzt mal nicht verstanden.
Code: Alles auswählen
localOS$ = GetLocalOS()
IF Left(localOS$,4) = "Wind"
include this
include that
.......
hide thisgadget
hide thatmenu
sperre jenenbutton
.......
EndIF
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
@ts-soft
Das sehe ich anders. Wenn ich keine API benutze, reicht ein Source, der dann auf allen anderen auch kompilierbar ist.
Ein Beispiel ist der Code zum Auslesen ALLER Informationen aus einem AVI-File. Die Beispiele, die ich gefunden haben, haben entweder die API benutzt und waren dadurch OS-abhängig oder (wegen des hohen Aufwands ? ) nur auf die gerade nachgefragten Werte bezogen. Hat mir nicht gereicht, deswegen hab ich mich durch den Sums durchgebissen und hoffe, daß mein Source auch unter Linux/MacOS kompilierbar ist.
Dein scheint doch zu meinen Zwecken einsetzbar zu sein. Ich versuchs halt mal.
bis denne...
scholly
Das sehe ich anders. Wenn ich keine API benutze, reicht ein Source, der dann auf allen anderen auch kompilierbar ist.
Ein Beispiel ist der Code zum Auslesen ALLER Informationen aus einem AVI-File. Die Beispiele, die ich gefunden haben, haben entweder die API benutzt und waren dadurch OS-abhängig oder (wegen des hohen Aufwands ? ) nur auf die gerade nachgefragten Werte bezogen. Hat mir nicht gereicht, deswegen hab ich mich durch den Sums durchgebissen und hoffe, daß mein Source auch unter Linux/MacOS kompilierbar ist.
Dein
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_AmigaOS
; AmigaCode
CompilerCase #PB_OS_Linux
; PinguinCode
CompilerCase #PB_OS_MacOS
; ApfelCode
CompilerCase #PB_OS_Windows
; FensterCode
CompilerEndSelect
Ansichtssache und vielleicht eine Erfahrung, die ich erst noch machen muß. Aber bei meiner RIFF/AVI-Geschichte bin ich "zu Fuß" weiter gekommen, als mit der WinAPi (in der ich vielleicht nicht das richtige gefunden habe, weil ich schlecht mit Suchbegriffen bin).OS-Unabhängig durch Verzicht auf API ist blödsinn, da ist man viel zu sehr eingeschränkt. Compilerdirektiven und die API des jeweiligen OSses benutzen, ist der einzige Weg zu prof. unabhängigen Programmen
bis denne...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)