Come verificare il tipo di macchina corrente? laptop o desktop?Come controllare il tipo di macchina? laptop o desktop?
Ho ottenuto questo da http://blog.csdn.net/antimatterworld/archive/2007/11/11/1878710.aspx, funziona bene sulla mia macchina domestica (Win2003 su laptop), restituisce "Portatile", ma non è riuscito sulla mia macchina da lavoro (Vista sul laptop), restituisce "Altro".
ecco il codice:
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;
}
Interessante. Cosa stai cercando di realizzare? Stai solo cercando di determinare se è probabile che la macchina venga utilizzata al di fuori dell'ufficio? –
sono con John Saunders: cosa stai cercando di ottenere? Esiste un modo affidabile per verificare se la macchina è alimentata da una batteria: è questo che speri di scoprire chiedendo al laptop o no? –
Non esiste una metrica affidabile per determinare quale fattore di forma è un sistema; inoltre, non è possibile determinare quali futuri fattori di forma potrebbero "sembrare" come un dispositivo portatile attuale in base a parametri specifici. La vera domanda qui è perché sulla terra è il fattore di forma del sistema su cui è in esecuzione il tuo codice importante? –