Seite 1 von 2
Windows Version
Verfasst: 12.01.2005 03:55
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
Verfasst: 12.01.2005 04:15
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
Verfasst: 12.01.2005 05:17
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 ?
Verfasst: 12.01.2005 05:55
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
Urg
Verfasst: 12.01.2005 06:01
von Hroudtwolf
Mensch das ist mir jetzt peinlich
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.
Verfasst: 12.01.2005 06:05
von ts-soft
Dieser Befehl existiert erst seit PB 3.40

Verfasst: 12.01.2005 15:25
von bluejoke
und die Topos-Version ist 3.3, isn't it?
Verfasst: 15.01.2005 23:05
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.
Verfasst: 16.01.2005 09:37
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

Verfasst: 16.01.2005 12:03
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.