Windows Version

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Windows Version

Beitrag von Hroudtwolf »

Hallo Forum,

Weiss jemand wie man die Windowsversion per API auslesen kann ?
Damit ich in mein Programm eine Versionskontrolle machen kann.

z.B.

If WINDOWVERSION_()<>"XP":End:EndIF
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Ich frag mich zwar warum es WinAPI sein muss aber egal:

Code: Alles auswählen

OSInfo.OSVERSIONINFO
OSInfo\dwOSVersionInfoSize = SizeOf(OSVERSIONINFO)
If GetVersionEx_(@OSInfo)
  If OSInfo\dwPlatformId = #VER_PLATFORM_WIN32s
    Debug "Platform: Win32s or Windows 3.1"
  ElseIf OSInfo\dwPlatformId = #VER_PLATFORM_WIN32_WINDOWS
    Debug "Platform: Windows 95, Windows 98, Or Windows Me"
  ElseIf OSInfo\dwPlatformId = #VER_PLATFORM_WIN32_NT
    Debug "Platform: Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family"
  EndIf
  
  If OSInfo\dwMajorVersion = 3 And OSInfo\dwMinorVersion = 0 
    Debug "Windows 95"
  ElseIf OSInfo\dwMajorVersion = 4 And OSInfo\dwMinorVersion = 10
    Debug "Windows 98"
  ElseIf OSInfo\dwMajorVersion = 4 And OSInfo\dwMinorVersion = 90
    Debug "Windows ME"
  ElseIf OSInfo\dwMajorVersion = 3 And OSInfo\dwMinorVersion = 51
    Debug "Windows NT 3.51"
  ElseIf OSInfo\dwMajorVersion = 4 And OSInfo\dwMinorVersion = 0
    Debug "Windows NT 4.0"
  ElseIf OSInfo\dwMajorVersion = 5 And OSInfo\dwMinorVersion = 0
    Debug "Windows 2000"
  ElseIf OSInfo\dwMajorVersion = 5 And OSInfo\dwMinorVersion = 1
    Debug "Windows XP"
  ElseIf OSInfo\dwMajorVersion = 5 And OSInfo\dwMinorVersion = 2
    Debug "Windows 2003 Server family"
  EndIf
  If OSInfo\szCSDVersion
    Debug PeekS(@OSInfo\szCSDVersion)
  EndIf
  Debug "Build: "+Str(OSInfo\dwBuildNumber)
EndIf
Zuletzt geändert von Deeem2031 am 25.08.2005 14:53, insgesamt 1-mal geändert.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Deeem2031 hat geschrieben:Ich frag mich zwar warum es WinAPI sein muss aber egal:
Vielen vielen dank erstmal...

Aber was meinst du damit (ZITAT) ?

Gibt es da etwa nochne Möglichkeit, ausser API ?
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 »

Er meint mit PB, z.B:

Code: Alles auswählen

  Select OSVersion() 
    Case #PB_OS_Windows_98 
      MessageRequester("Info", "Windows 98") 

    Case #PB_OS_Windows_2000 
      MessageRequester("Info", "Windows 2000") 
  
    Case #PB_OS_Windows_XP 
      MessageRequester("Info", "Windows XP") 

    Default 
      MessageRequester("Info", "Nicht unterstützte Windows-Version")    
  EndSelect 
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
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Urg

Beitrag von Hroudtwolf »

Mensch das ist mir jetzt peinlich :oops:

Ich hab jetzt erst 4 Wochen die PB3.92. Vorher hatte ich die TOPOS-Version.
Das gabs dat nich.

Irgendwie hab ich diesen Befehl immer wieder in der Hilfe übersehen.


Aber...Vielen Dank.
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 »

Dieser Befehl existiert erst seit PB 3.40 :mrgreen:
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
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

und die Topos-Version ist 3.3, isn't it?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

bluejoke hat geschrieben:und die Topos-Version ist 3.3, isn't it?
Yep, aber "nur" die eigentliche Programm-Version.

Das Handbuch usw. wurde noch für die v3.2 geschrieben, da diese eigentlich als die heute bekannte Topos-Version veröffentlich werden sollte.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Schau auch mal bei Compilerdirektiven, ist manchmal auch sehr nützlich ;) .

Code: Alles auswählen

CompilerIf #PB_Compiler_OS = #PB_OS_Linux
  ; etwas Linux spezifischer Programmcode..
CompilerEndIf
Dann wird der Linux code nur dann mit im Programm sein, wenn du es unter Linux compillierst ;)
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
NetSlayer
Beiträge: 117
Registriert: 21.09.2004 21:18
Kontaktdaten:

Beitrag von NetSlayer »

Ähm, das was ihr ihm da andreht (also die Konstanten) gibt ihm das Betriebssystem zur Compile-Time an, also nicht zwingend das des Anwenders, was ja wohl Zweck der Sache ist, oder?

API ist also eigentlich schon richtig.
...MfG, NetSlayer
"No, I ain't got a problem. It's you with the problem!"
http://netslayer.scpn.net
Antworten