Seite 1 von 2
[erledigt] GetLocalOS() ?
Verfasst: 21.12.2005 22:13
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
Verfasst: 21.12.2005 22:31
von ts-soft
Was ist mit OSVersion() zur Laufzeit
Oder CompilerIf #PB_Compiler_OS während der Compilierung
Verfasst: 21.12.2005 22:54
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
Verfasst: 21.12.2005 23:05
von Konne
Lol dass Problem wird sich nicht ergeben, da du ne exe zB garnet auf Linux laufen lassen kannst.
Verfasst: 21.12.2005 23:13
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.
Verfasst: 21.12.2005 23:20
von nicolaus
Habe den Thread mal in Anfänger verschoben ist hier denke ich besser aufgehoben
Gruß Nico
Verfasst: 21.12.2005 23:26
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
Verfasst: 21.12.2005 23:32
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 ?
Verfasst: 21.12.2005 23:36
von MVXA
Genau dafür gibt es ja das, was TS-Soft dir gepostet hat

.
Verfasst: 21.12.2005 23:51
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