【发布时间】:2010-11-04 01:01:53
【问题描述】:
如何查看当前机器类型?笔记本电脑还是台式机?
我从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;
}
【问题讨论】:
-
有趣。你想达到什么目的?您是否只是想确定该机器是否可能在办公室外使用?
-
我支持 John Saunders:您想要实现什么目标?有一种可靠的方法可以检查机器是否使用电池运行 - 您是否希望通过询问笔记本电脑来发现这一点?
-
没有可靠的指标来确定系统的外形尺寸;此外,在给定任何特定指标的情况下,您无法确定未来的外形尺寸可能“看起来”像当前的笔记本电脑设备。这里真正的问题是为什么你的代码运行的系统的外形因素很重要?