كيف يمكنني اختبار ما إذا كان "Microsoft Windows 7 Home Premium" هو نظام التشغيل باستخدام VBScript؟

StackOverflow https://stackoverflow.com/questions/2121439

سؤال

محاولتي الأولى هي الاستعلام عن نظام 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 ، ومع ذلك ما زلت لا أفهم لماذا "التسمية التوضيحية" وسلسلة بلدي ليست متساوية.

هل كانت مفيدة؟

المحلول

هل أنت متأكد من أن لديك "Microsoft Windows XP" وليس "Microsoft Windows XP Professional"؟ إذا كنت تستخدم "=" علامة ، فلن تلتقطها لأنها تتوقع مطابقة سلسلة دقيقة. استخدم Instr () سيكون أفضل إذا كنت تريد تطابق جزئي. خلاف ذلك ، أضف "المهنية"

يمكنك وضع بعض الأخطاء بعد العثور على التسمية التوضيحية

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

وجرب طريقة مختلفة

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

تحقق من الطول أيضًا ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top