[erledigt] GetLocalOS() ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

[erledigt] GetLocalOS() ?

Beitrag von scholly »

moin, moin...
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)
Benutzeravatar
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

Beitrag von ts-soft »

Was ist mit OSVersion() zur Laufzeit
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.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

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 bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Lol dass Problem wird sich nicht ergeben, da du ne exe zB garnet auf Linux laufen lassen kannst.
Benutzeravatar
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:

Beitrag von Falko »

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.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

Habe den Thread mal in Anfänger verschoben ist hier denke ich besser aufgehoben ;-)
Gruß Nico
Benutzeravatar
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

Beitrag von ts-soft »

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:

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
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
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.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Falko hat geschrieben:Also, das habe ich jetzt mal nicht verstanden.
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:

Code: Alles auswählen

localOS$ = GetLocalOS()
IF Left(localOS$,4) = "Wind" 
    include this
    include that
    .......
    hide thisgadget
    hide thatmenu
    sperre jenenbutton
    .......
EndIF
Das sollte doch hinzubekommen sein, oder ?
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Genau dafür gibt es ja das, was TS-Soft dir gepostet hat ;).
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

@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

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
scheint doch zu meinen Zwecken einsetzbar zu sein. Ich versuchs halt mal.
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
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).
bis denne...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten