 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 09.11.2007, 12:17 Titel: Windows-Version ermitteln |
|
|
Hi,
hier http://www.freebasic-portal.de/index.php?s=code&id=93 hat ytwinky ein Codeschnipsel von meiner alten HP ausgegraben.
Schön wenn es noch brauchbar ist
Oft braucht man aber nur die PlatformId um zwischen den alten und neueren Winversionen unterscheiden zu können.
Code: | #Include Once "windows.bi"
Function GetOSplatform () As UInteger ' oder DWORD
Dim OSV As OSVERSIONINFO
OSV.dwOSVersionInfoSize = SizeOf(OSV)'Laenge des UDT angeben
If GetVersionEx( @OSV ) <> 0 Then 'Funktion aufrufen
Return OSV.dwPlatformId 'Rueckgabewert
'0 = ???
'1 = Win 95 | 98 | ME
'2 = NT | W2k| XP | Vista
End If
Function = 0
End Function
Print GetOSplatform
Sleep |
Da es mittlerweile eine neue Winversion gibt:
Code: | #Include Once "windows.bi"
Function GetOSplatform () As UInteger ' oder DWORD
Dim OSV As OSVERSIONINFO
Dim mOsVersion As String
Dim Erg As Integer
OSV.dwOSVersionInfoSize = SizeOf(OSV)'Laenge des UDT angeben
Erg = GetVersionEx(@OSV) 'Funktion aufrufen und
If Erg <> 0 Then 'Rueckgabewert abfragen
Select Case OSV.dwPlatformId
Case 0
mOsVersion = "??"
Case 1
Select Case OSV.dwMinorVersion
Case 0
mOsVersion = "95"
Case 10
mOsVersion = "98"
If (OSV.dwBuildNumber And &HFFFF) = 2222 Then
mOsVersion = "98 SE"
End If
Case 90
mOsVersion = "ME"
End Select
Case 2
Select Case OSV.dwMajorVersion
Case 3
mOsVersion = "NT 3.51"
Case 4
mOsVersion = "NT 4.0"
Case 5
Select Case OSV.dwMinorVersion
Case 0
mOsVersion = "2000"
Case 1
mOsVersion = "XP"
Case 2
mOsVersion = "Server 2003"
End Select
Case 6
mOsVersion = "VISTA"
End Select
End Select
MessageBox (0, "Windows " + mOsVersion + Chr(10) _
+ Trim( Str(OSV.dwMajorVersion)) + ". " _
+ Trim( Str(OSV.dwMinorVersion)) + ". " _
+ Trim( Str(OSV.dwBuildNumber And &HFFFF)) + " " _
+ Trim( OSV.szCSDVersion), "WinVersion", MB_OK)
End If
Function = OSV.dwPlatformId
End Function
Dim Erg As UInteger
Erg = GetOSplatform | Getestet habe ich es nur unter 98SE, ME, W2k, XP (Home und Prof).
Vielleicht könnten VISTA - User mal testen ob das bei Ihnen funktioniert? _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.11.2007, 19:30 Titel: |
|
|
sollte funktionieren, da ich einen ähnlichen VB-Code bereits zum Test hier im forum ausgestellt habe. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|