C# 如何判断计算机类型(台式机还是笔记本)
2007-11-08 16:47
543 查看
如何判断计算机的类型?一个简单的方法是通过 WMI 查询系统信息 Win32_SystemEnclosure 类,ChassisTypes指示计算机类型。有 22 种已知类型,多数我们平时见不到,最常见的当然是Desptop(3)和Laptop(9)(较老型号),Notebook(10)。
需要引用 System.Management 命名空间。
以下是示例代码:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
using System.Management;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public enum ChassisTypes
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Other = 1,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Unknown,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Desktop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
LowProfileDesktop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PizzaBox,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
MiniTower,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Tower,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Portable,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Laptop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Notebook,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Handheld,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
DockingStation,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
AllInOne,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SubNotebook,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SpaceSaving,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
LunchBox,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
MainSystemChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ExpansionChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SubChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
BusExpansionChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PeripheralChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
StorageChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
RackMountChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SealedCasePC
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public static ChassisTypes GetCurrentChassisType()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
foreach (ManagementObject obj in systemEnclosures.GetInstances())
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
foreach (int i in (UInt16[])(obj["ChassisTypes"]))
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (i > 0 && i < 25)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return (ChassisTypes)i;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return ChassisTypes.Unknown;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
需要引用 System.Management 命名空间。
以下是示例代码:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
using System.Management;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public enum ChassisTypes
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Other = 1,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Unknown,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Desktop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
LowProfileDesktop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PizzaBox,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
MiniTower,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Tower,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Portable,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Laptop,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Notebook,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Handheld,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
DockingStation,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
AllInOne,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SubNotebook,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SpaceSaving,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
LunchBox,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
MainSystemChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ExpansionChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SubChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
BusExpansionChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PeripheralChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
StorageChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
RackMountChassis,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
SealedCasePC
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public static ChassisTypes GetCurrentChassisType()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
foreach (ManagementObject obj in systemEnclosures.GetInstances())
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
foreach (int i in (UInt16[])(obj["ChassisTypes"]))
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (i > 0 && i < 25)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return (ChassisTypes)i;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return ChassisTypes.Unknown;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- C# 如何判断计算机类型(台式机还是笔记本)
- 用vbs实现判断计算机是笔记本还是台式机的代码
- 如何判断是比笔记本还是台式机?
- 在计算机中,如何判断一个数是八进制还是十六进制?
- 如何判断一台计算机的CPU是大端还是小字端
- C# 如何判断系统是32位还是64位
- 判断是笔记本还是台式机
- C#如何判断操作系统位数是32位还是64位
- [转]C#如何判断操作系统位数是32位还是64位
- C# winform如何在textbox中判断输入的是字母还是数字?
- 如何判断上传的文件类型??是先判断再上传还是先上传再判断?真实的文件类型是什么样的?
- C# 如何后台判断 file控件上传的文件类型
- 如何判断C#字符串是全角还是半角
- 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)
- 利用 ACPI\\ACPI0003设备 判断笔记本还是台式机
- 如何判断程序是x86还是x64类型
- .NET/C#如何判断某个类是否是泛型类型或泛型接口的子类型详解
- 如何判断计算机是大端还是小端
- C#中Guid类型值如何判断不是初始值!
- C# 如何判断系统是64位还是32位【轉】