Betriebssystem ermitteln (inkl. Architektur)

    • VB.NET

    Es gibt 48 Antworten in diesem Thema. Der letzte Beitrag () ist von Rikudo.

      Das ist ein Button...
      wintoolz.de
      • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
      • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
      • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

      Benutze auch du Ecosia
      aso, ok





      also bei mir geht da iw nicht :

      das end function ist grün unterstrichen, und als felermeldung steht da : Von der Funktion "GetOSVersion" wird nicht in allen Codepfaden ein Wert zurückgegeben. Wenn das Ergebnis verwendet wird, kann zur Laufzeit eine NULL-Verweisausnahme auftreten.

      singu schrieb:

      Du frägst ab, ob es eine Workstation ist
      Hm .... meine letzte Lösung ist ganz blöd.
      Dein Vorschlag ist schon gut, nur weiß ich nicht, wie ich die Sache anpacke.

      Mit WMI kann ich diese mit ProductType abfragen.
      Aber wie packe ich die in die Abfrage rein? Oder gibt es noch ein anderen Weg?

      VB.NET-Quellcode

      1. Public Function GetOSVersion() As String
      2. Select Case Environment.OSVersion.Platform
      3. Case PlatformID.Win32NT
      4. Select Case Environment.OSVersion.Version.Major
      5. Case 5
      6. Select Case Environment.OSVersion.Version.Minor
      7. Case 0
      8. Return "Windows 2000"
      9. Case 1
      10. Return "Windows XP"
      11. Case 2
      12. Return "Windows 2003"
      13. End Select
      14. Case 6
      15. Select Case Environment.OSVersion.Version.Minor
      16. Case 0
      17. Return "Windows Vista/Windows 2008 Server"
      18. Case 1
      19. Return "Windows 7"
      20. End Select
      21. Case Else
      22. Return "Unbekannt"
      23. End Select
      24. Case Else
      25. Return "Unbekannt"
      26. End Select
      27. End Function
      Grüße JackCimberly

      Deine Anfrage erledigt?
      Als erledigt markieren

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JackCimberly“ ()

      ramon1611 schrieb:

      End Function ist grün unterstrichen
      Fehlermeldung : Von der Funktion "GetOSVersion" wird nicht in allen Codepfaden ein Wert zurückgegeben. Wenn das Ergebnis verwendet wird, kann zur Laufzeit eine NULL-Verweisausnahme auftreten.

      VB.NET-Quellcode

      1. '[...]
      2. End Select
      3. Return "Unbekannt"
      4. End Function


      Da fehlte bei mir nur noch ein Return am Ende ..... sry
      Grüße JackCimberly

      Deine Anfrage erledigt?
      Als erledigt markieren
      Schau mal in dem Beispiel.
      wintoolz.de
      • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
      • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
      • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

      Benutze auch du Ecosia
      @progThis
      1. Du weißt schon, wie alt der Thread ist?!
      2. My-Namespace :wacko:
      Bitte lerne zuerst doch mal die Grundlagen, bevor du hier was postest...
      Ist wirklich nicht böse gemeint, aber das ist nicht gut immer schlechte Vorschläge zu posten.
      Hallo

      Da der Thread doch etwas älter ist.

      Hier meine Lösung für Architektur und OS:

      VB.NET-Quellcode

      1. Public Function GetArchitektur() As String
      2. If Environment.Is64BitOperatingSystem Then
      3. Return "64 Bit"
      4. End If
      5. Return "32 Bit"
      6. End Function


      VB.NET-Quellcode

      1. Public Function GetOSVersion() As String
      2. Dim oSystem As OperatingSystem = Environment.OSVersion
      3. Dim minor = oSystem.Version.Minor
      4. Dim major = oSystem.Version.Major
      5. Dim sPlatform As String = "Windows 7"
      6. If major = 4 And minor = 0 Then
      7. sPlatform = "Windows 95"
      8. ElseIf major = 4 And minor = 10 Then
      9. sPlatform = "Windows 98"
      10. ElseIf major = 4 And minor = 90 Then
      11. sPlatform = "Windows ME"
      12. ElseIf major = 5 And minor = 0 Then
      13. sPlatform = "Windows 2000"
      14. ElseIf major = 5 And (minor = 1 Or minor = 2) Then
      15. sPlatform = "Windows XP"
      16. ElseIf major = 6 And minor = 1 Then
      17. sPlatform = "Windows 7"
      18. ElseIf major = 6 And minor = 2 Then
      19. sPlatform = "Windows 8"
      20. ElseIf major = 6 And minor = 3 Then
      21. sPlatform = "Windows 8.1"
      22. Else
      23. sPlatform = "Unbekannt"
      24. End If
      25. GetOSVersion = sPlatform
      26. End Function

      @MrBizzl

      Mal nen bisschen verbessert:

      VB.NET-Quellcode

      1. Public Function GetArchitecture() As String
      2. Return If(Environment.Is64BitOperatingSystem, "64 Bit", "32 Bit")
      3. End Function
      4. Public Function GetOSVersion() As String
      5. Dim minor = Environment.OSVersion.Version.Minor
      6. Dim major = Environment.OSVersion.Version.Major
      7. Select Case True
      8. Case major = 4 AndAlso minor = 0
      9. Return "Windows 95"
      10. Case major = 4 AndAlso minor = 10
      11. Return "Windows 98"
      12. Case major = 4 AndAlso minor = 90
      13. Return "Windows ME"
      14. Case major = 5 AndAlso minor = 0
      15. Return "Windows 2000"
      16. Case major = 5 AndAlso (minor = 1 OrElse minor = 2)
      17. Return "Windows XP"
      18. Case major = 6 AndAlso minor = 1
      19. Return "Windows 7"
      20. Case major = 6 AndAlso minor = 2
      21. Return "Windows 8"
      22. Case major = 6 AndAlso minor = 3
      23. Return "Windows 8.1"
      24. Case major = 6 AndAlso minor = 4
      25. Return "Windows 10"
      26. Case Else
      27. Return "Unbekannt"
      28. End Select
      29. End Function
      Mfg
      Vincent

      Moin,

      bitte keine alten Threads ausgraben. Außerdem würde ich statt einem String lieber direkt einen Boolean oder im Zweifelsfalle eine Enumeration verwenden.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Moin,

      entschuldigung, das habe ich nicht beachtet. Werde ich das nächste mal schauen.

      Grüße
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      Daniel Baumert schrieb:

      major = 6 minor = 3 entspricht auch Win 8.1.?


      en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions

      major = 6 und minor = 3 ist Windows 8.1
      Windows 8 == 6.2
      Windows 10 == 6.4

      Daniel Baumert schrieb:

      Kann man also de facto mit dieser Methode nicht zwischen Win 8 und Win 8.1
      differenzieren?

      Doch, weil 6.3 ist Win8.1 und 6.2 ist Win8
      Grüße,
      Lukas

      Fragen über Themen im Forum per Konversation werden gelöscht und die Absender blockiert...