如何查看当前机器类型?笔记本或台式机?
我从http://blog.csdn.net/antimatterworld/archive/2007/11/11/1878710.aspx得到了这个,它在我的家用机器(笔记本电脑上的Win2003)上运行良好,它返回"便携式",但失败了我的工作机器(笔记本电脑上的Vista),它返回"其他".
这是代码:
public enum ChassisTypes
{
Other = 1,
Unknown,
Desktop,
LowProfileDesktop,
PizzaBox,
MiniTower,
Tower,
Portable,
Laptop,
Notebook,
Handheld,
DockingStation,
AllInOne,
SubNotebook,
SpaceSaving,
LunchBox,
MainSystemChassis,
ExpansionChassis,
SubChassis,
BusExpansionChassis,
PeripheralChassis,
StorageChassis,
RackMountChassis,
SealedCasePC
}
public static ChassisTypes GetCurrentChassisType()
{
ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
foreach (ManagementObject obj in systemEnclosures.GetInstances())
{
foreach (int i in (UInt16[ ])(obj["ChassisTypes"]))
{
if (i > 0 && i < 25)
{
return (ChassisTypes)i;
}
}
}
return ChassisTypes.Unknown;
}
这是一篇很好的微软文章,建议查看一些其他WMI类,以更好地了解计算机是笔记本电脑还是台式机:
http://technet.microsoft.com/en-us/library/cc180825.aspx
Win32_SystemEnclosure, ChassisTypes(1)=10
Win32_Battery or Win32_PortableBattery
Win32_PCMCIAController
Win32_DriverVXD.Name = "pccard"
Win32_ComputerSystem.Manufacturer
Win32_ComputerSystem.Model
Run Code Online (Sandbox Code Playgroud)
它还建议在注册表中查看Power方案.
Coo*_*.Wu -3
从HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\pcmcia读取注册表项,\xe2\x80\x98Start\xe2\x80\x99值,如果start=0则为笔记本电脑,否则如果start不存在则为台式机或开始!= 0。
\n| 归档时间: |
|
| 查看次数: |
21784 次 |
| 最近记录: |