OS-Version Variable per VB.NET

axeos

Grünschnabel
Hallo,

ich stehe mal wieder vor einem Problem, denn ich versuche eigentlich per BAT eine Umgebungsvariable "OSVERSION" mit der Bezeichnung des Betriebssysem, bzw. der Version festzuhalten, sodass mein .NET08 weiß, aha das ist Vista, dass ist XP etc.

Leider klappt das nicht, muss ich also versuchen, dass was die BAT macht, in Visual Basic zu integrieren und ich habe keine Ahnung wie.

Vielleicht hat einer eine Idee für mich:

Hier erst einmal die BAT

Code:
set OSVERSION=

set tmpDatei=%userprofile%\version.txt
ver > %tmpDatei%

findstr /C:"XP" %tmpDatei% || goto vista
set OSVERSION=XP
goto ende

:vista
findstr /:C"Microsoft Windows [Version 6" %tmpDatei%
set OSVERSION=Vista
goto

:ende
pause

Wie automatisiere ich das in VB

Danke
 
Ich würde da mit dem Betriebssysten herausfinden so machen:

Code:
Module Module1
    Sub Main()
        If Environment.OSVersion.Version.Major = 6 AndAlso Environment.OSVersion.Version.Minor = 0 Then
            ' Vista (6.0)
            Environment.SetEnvironmentVariable("OSVERSION", "VISTA", EnvironmentVariableTarget.Machine)
        ElseIf Environment.OSVersion.Version.Major < 6 Then
            ' was älteres (XP z.B. 5.1)
        End If
    End Sub
End Module
 
Zuletzt bearbeitet:
Vielen Dank, aber ich erhalte dabei einige Fehlermeldungen

Ich muss aber sagen, dass ich deinen Code noch etwas angepasst habe.

Code:
Module osversion

    Sub Main()
        If Environment.OSVersion.Version.Major >= 6 AndAlso Environment.OSVersion.Version.Minor = 0 Then
            ' Vista (6.0)
            Environment.SetEnvironmentVariable("OSVERSION", "VISTA", EnvironmentVariableTarget.Machine)
        ElseIf Environment.OSVersion.Version.Major < 6 And Environment.OSVersion.Version.Major >= 5 Then
            ' was älteres (XP z.B. 5.1)
            Environment.SetEnvironmentVariable("OSVERSION", "XP", EnvironmentVariableTarget.Machine)
        ElseIf Environment.OSVersion.Version.Major < 5 Then
            ' was älteres (früher 2000)
            Environment.SetEnvironmentVariable("OSVERSION", "WIN2K", EnvironmentVariableTarget.Machine)
        Else
            MsgBox("Ihr Betriebssystem wird nicht unterstützt!")
        End If
    End Sub


End Module

Und das sind die Fehlermeldungen

Der angeforderte Registrierungszugriff ist unzulässig.

Eine Ausnahme (erste Chance) des Typs "System.Security.SecurityException" ist in mscorlib.dll aufgetreten.

Der Aufruf erfolgt bereits beim SplashScreen

Code:
'Betriebssystemerkennung

        osversion.Main()
 
Moin,
ich nutze Vista Business und bin angemeldet als der Nutzer, der bei der Installation eingerichtet wird. Ich gehe davon aus, dass dieser Administratorenrechte haben sollte.

Problem zeitweilig gelöst, indem ich dieses UAC deaktiviere, doch wie löst man das Problem grundsätzlich, dass man bestimmte Sachen ebenhalt ausführen möchte.
 
Zuletzt bearbeitet:
Man kann unter Projekteigenschaften->Benutzerkontensteuerung einstellen, welche Rechte das Programme zur Ausführung haben muss... Wenn du da "requireAdministrator" einstellst, dann funktioniert das auf jedem Vista-System, allerdings kommt halt dann vor Programmstart ggf. UAC und fragt, ob man das Programm wirklich selber gestartet hat.
 
Hi

Brauchst du die Info nur in deinem Programm?
Wenn ja: Wieso setzt du dafür eine Umgebungsvariable? Die Informationen der Environment-Klasse stehen dir überall zur Verfügung.
 
Hi

jetzt wo du es sagst, stimmt es eigentlich auch. Es reicht ja völlig eine Globale Variable innerhalb des Programms.

Danke für den Stupser
 
Auch nicht!
Frag den Wert da ab, wo du ihn brauchst!
Wenn du eine Feld anlegst, belegst du nur unnützen Speicherplatz. Es gibt doch schon eine Klasse, die dir die Information zur Verfügung stellt, speicher das nicht doppelt!
 

Neue Beiträge

Zurück