* Use WMI to determine if HyperThreading is turned on * This only works on Windows XP SP3, Windows Server 2003, and later because * underlying Windows APIs were not added until those versions. Local lcWMIFolder, loWMI, lcolProcessors, loProcessor lcWMIFolder = Addbs(GetEnv("SystemRoot")) + "System32\WBEM\" If Directory(lcWMIFolder) && make sure installed loWMI = GetObject("winmgmts:\\.\root\cimv2") lcolProcessors = loWMI.ExecQuery("Select * from Win32_Processor") For each loProcessor in lcolProcessors FoxObject If Type("loProcessor.NumberOfCores")<> "U" and Type("loProcessor.NumberOfLogicalProcessors")<> "U" ? "CPU Manufacturer:", loProcessor.Manufacturer ? "CPU Name:", loProcessor.Name ? "Number of Physical Cores:", loProcessor.NumberOfCores ? "Number of Logical Processors:", loProcessor.NumberOfLogicalProcessors * If logical processors > actual cores, HT must be turned on If loProcessor.NumberOfLogicalProcessors > loProcessor.NumberOfCores ? "HyperThreading is ENABLED" Else ? "HyperThreading is DISABLED or unavailable on CPU" EndIf Else ? "HyperThreading detection not available on this O/S" EndIf EndFor Else ? "WMI is not installed." EndIf