如何检查机器类型?笔记本或台式机?

Coo*_*.Wu 14 c# wmi

如何查看当前机器类型?笔记本或台式机?

我从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;
}

Kev*_*man 7

这是一篇很好的微软文章,建议查看一些其他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方案.


HMc*_*McG 6

好吧,我可能试图在这里复活死者,但我建议确定笔记本电脑的最可靠方法是存在盖子状态开关。请参阅GetPwrCapabilitiesSystem_power_Capabilities


Coo*_*.Wu -3

从HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\pcmcia读取注册表项,\xe2\x80\x98Start\xe2\x80\x99值,如果start=0则为笔记本电脑,否则如果start不存在则为台式机或开始!= 0。

\n