0

私の最初の試みは、Win32_OperatingSystem にキャプションを照会し、キャプションがテスト対象のオペレーティング システムと "等しい" かどうかをテストすることです。

Dim objWMIService, strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")


msgbox getOperatingSystemCaption()
msgbox meetsOperatingSystemRequirement()



Function getOperatingSystemCaption()

     Dim strCaption, colOperatingSystems, objOperatingSystem

     Set colOperatingSystems = objWMIService.ExecQuery _
          ("Select * from Win32_OperatingSystem")

     For Each objOperatingSystem in colOperatingSystems
        strCaption = objOperatingSystem.Caption
        Exit For 
     Next

    getOperatingSystemCaption = strCaption

End Function





Function meetsOperatingSystemRequirement()

    meetsOperatingSystemRequirement = False 

    If getOperatingSystemCaption() = "Microsoft Windows 7 Home Premium" Then 

       meetsOperatingSystemRequirement = True

    End If 


End Function

InStr を使用できると思いますが、「キャプション」と文字列が等しくない理由はまだわかりません。

4

1 に答える 1

2

「Microsoft Windows XP Professional」ではなく、「Microsoft Windows XP」を使用していますか? 「=」記号を使用すると、正確な文字列と一致することが期待されるため、キャッチできません。部分一致が必要な場合は、 instr() を使用することをお勧めします。それ以外の場合は、「プロフェッショナル」を追加してください

キャプションが見つかった後、デバッグを行うことができます

....
        msgbox strCaption & " " & len(strCaption)
        getOperatingSystemCaption = strCaption
....

そして別の方法を試す

.....
    myCaption = getOperatingSystemCaption()
     msgbox myCaption & " " & len(myCaption)
    If myCaption = "Microsoft Windows XP Premium Home" Then 
......

長さもチェック…

于 2010-01-23T00:38:35.057 に答える