驼峰鼻是不是罗马鼻:如何确定计算机是笔记本电脑还是台式计算机?

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 03:36:07

如何确定计算机是笔记本电脑还是台式计算机?

问:

嗨,Scripting Guy!是否可以使用 WMI 来确定计算机是笔记本电脑还是台式计算机?

-- CB

答:

嗨,CB。毫无疑问,尽管我们并不知道您自己是怎么解决这个问题的。大家知道,有一个很小的称为 Win32_SystemEnclosure 的傻瓜式 WMI 类,ChassisTypes 属性可以告诉您,您使用的是笔记本电脑、台式计算机还是其他类型的计算机。哦,输入。以下脚本可以让您知道您使用的是哪种类型的计算机:

strComputer = "."Set objWMIService = GetObject("winmgmts:" _& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colChassis = objWMIService.ExecQuery _("Select * from Win32_SystemEnclosure")For Each objChassis in colChassisFor  Each strChassisType in objChassis.ChassisTypesWscript.Echo strChassisTypeNextNext

好吧,以上脚本只是在一定程度上让您知道您使用的是哪种类型的计算机。实际上,ChassisType 属性返回的是一个数字,这就是说当我们在面前的计算机上运行这个脚本时,我们将得到 10。那么,什么是 10 呢?根据WMI SDK,它指的是笔记本计算机。猜一猜会发生什么呢?没错!

但您并不必每次检查计算机类型时都参考 SDK。以下经过扩展的脚本使用一个 Select Case 语句,它可将这些整数转换为更有意义的内容:

strComputer = "."Set objWMIService = GetObject("winmgmts:" _& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colChassis = objWMIService.ExecQuery _("Select * from Win32_SystemEnclosure")For Each objChassis in colChassisFor  Each strChassisType in objChassis.ChassisTypesSelect Case strChassisTypeCase 1Wscript.Echo "Other"Case 2Wscript.Echo "Unknown"Case 3Wscript.Echo "Desktop"Case 4Wscript.Echo "Low Profile Desktop"Case 5Wscript.Echo "Pizza Box"Case 6Wscript.Echo "Mini Tower"Case 7Wscript.Echo "Tower"Case 8Wscript.Echo "Portable"Case 9Wscript.Echo "Laptop"Case 10Wscript.Echo "Notebook"Case 11Wscript.Echo "Handheld"Case 12Wscript.Echo "Docking Station"Case 13Wscript.Echo "All-in-One"Case 14Wscript.Echo "Sub-Notebook"Case 15Wscript.Echo "Space Saving"Case 16Wscript.Echo "Lunch Box"Case 17Wscript.Echo "Main System Chassis"Case 18Wscript.Echo "Expansion Chassis"Case 19Wscript.Echo "Sub-Chassis"Case 20Wscript.Echo "Bus Expansion Chassis"Case 21Wscript.Echo "Peripheral Chassis"Case 22Wscript.Echo "Storage Chassis"Case 23Wscript.Echo "Rack Mount Chassis"Case 24Wscript.Echo "Sealed-Case PC"Case ElseWscript.Echo "Unknown"End SelectNextNext

在您提问以前,不,我们并不知道这些大多数计算机类型是什么,也不知道便携式计算机、膝上型计算机以及笔记本计算机之间有什么区别。我们也不知道 ChassisTypes 属性为什么存储为数组。那是否意味着一台计算机可以有多种计算机类型?不要问我们,我们也不知道。让我们喘口气吧:毕竟我们只是 Microsoft Scripting Guy,可不是 Microsoft Hardware Guy!