¿Cómo verificar el tipo de máquina actual? computadora portátil o de escritorio?¿Cómo verificar el tipo de máquina? computadora portátil o de escritorio?
Obtuve esto de http://blog.csdn.net/antimatterworld/archive/2007/11/11/1878710.aspx, funciona bien en mi máquina doméstica (Win2003 en la computadora portátil), devuelve "Portátil", pero falló en mi máquina de trabajo (Vista en la computadora portátil), devuelve "Otro".
Aquí está el código:
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;
}
interesante. ¿Qué está tratando de lograr? ¿Está tratando de determinar si es probable que la máquina se use fuera de la oficina? –
estoy con John Saunders: ¿qué estás tratando de lograr? Existe una forma confiable de verificar si la máquina funciona con batería: ¿es eso lo que espera averiguar al preguntarle a la computadora portátil o no? –
No hay una métrica confiable para determinar qué factor de forma es un sistema; además, no tiene manera de determinar qué factores de forma futura podrían 'parecer' como un dispositivo portátil actual con cualquier métrica específica. La verdadera pregunta aquí es por qué el factor de forma del sistema en el que se está ejecutando su código es importante. –