- Сообщения
- 14,071
- Реакции
- 5,789
Я использовал такой вариант:
Но он троит при росте кода,переменные с текстом (например ХР) читаются с ошибкой.
Может еще варианты?
VB.NET / VBA:
'определение битности ОС
For Each objOStype In GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")
'WScript.Echo "PC type = " & objOStype.SystemType
strOSbit = objOStype.SystemType
Next
If LCase(strOSbit) = "x86-based pc" Then
OSbit = "32bit"
End If
If LCase(strOSbit) = "x64-based pc" Then
OSbit = "64bit"
End If
'определение OS, SP, Language
For Each objOSinfo In GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
'WScript.Echo "Name = " & objOSinfo.Caption &VBCR _
' & "Version = " & objOSinfo.CSDVersion &VBCR _
' & "Language = " & objOSinfo.OSLanguage
strNameOS = objOSinfo.Caption
strSPver = objOSinfo.CSDVersion
strOSLang = objOSinfo.OSLanguage
Next
If strOSLang = "9" Or strOSLang = "1033" Then
OSLang = "English"
End If
If strOSLang = "1049" Then
OSLang = "Russian"
End If
dNameOS = Split(strNameOS, " ")
'WScript.Echo NameOS
For Each NameOS In dNameOS
If NameOS = "XP" Then
NameOS = "XP"
Exit For
End If
If NameOS = "2003" Or NameOS = "2003," Then
NameOS = "2003"
Exit For
End If
If NameOS = "2008" Then
NameOS = "2008"
Exit For
End If
If NameOS = "Vista" Then
NameOS = "Vista"
Exit For
End If
If NameOS = "7" Then
NameOS = "7"
Exit For
End If
If NameOS = "2008R2" Then
NameOS = "2008R2"
Exit For
End If
If NameOS = "8" Then
NameOS = "8"
Exit For
End If
If NameOS = "8.1" Then
NameOS = "8.1"
Exit For
End If
If NameOS = "10" Then
NameOS = "10"
Exit For
End If
Next
Rem & "Система: " & NameOS
Rem & "Язык: " & OSLang _
REM & "Разрядность: " & OSbit
Rem & "SP: " & strSPver
Dim WshNetwork As Object
Set WshNetwork = CreateObject("WScript.Network")
Label1.Caption = "Имя компьютера: " & WshNetwork.ComputerName
Label2.Caption = "Имя пользователя: " & WshNetwork.UserName
Label3.Caption = "Домен: " & WshNetwork.UserDomain
Label4.Caption = "Windows " & NameOS & "*" & OSbit
winxp.Caption = NameOS
Set WshNetwork = Nothing
Но он троит при росте кода,переменные с текстом (например ХР) читаются с ошибкой.
VB.NET / VBA:
If NameOS = 10 Then
GoTo Combo_win_8:
ElseIf NameOS = 8.1 Then
GoTo Combo_win_8:
ElseIf NameOS = 8 Then
GoTo Combo_win_8:
ElseIf NameOS = Vista Then
GoTo Combo_win_7:
ElseIf NameOS = 7 Then
GoTo Combo_win_7:
ElseIf NameOS = XP Then
GoTo Combo_win_XP:
ElseIf NameOS = 2003 Then
GoTo NoWinCombo1:
ElseIf NameOS = 2008 Then
GoTo NoWinCombo1:
ElseIf NameOS = "2008R2" Then
GoTo NoWinCombo1:
End If
Последнее редактирование: