Global Const $wbemFlagReturnImmediately = 0x10
Global Const $wbemFlagReturnWhenComplete = 0x0
Global Const $wbemFlagBidirectional = 0x0
Global Const $wbemFlagForwardOnly = 0x20
Global Const $wbemFlagNoErrorObject = 0x40
Global Const $wbemFlagReturnErrorObject = 0x0
Global Const $wbemFlagSendStatus = 0x80
Global Const $wbemFlagDontSendStatus = 0x0
Global Const $wbemFlagUseAmendedQualifiers = 0x20000
MsgBox(0, "", _Win32_Processor_NumberOfLogicalProcessors())
Func _Win32_Processor_NumberOfLogicalProcessors()
Local $oWMI, $oItems
$oWMI = ObjGet("winmgmts:\\.\root\CIMV2")
If Not IsObj($oWMI) Then Return SetError(1, 0, 0)
$oItems = $oWMI.ExecQuery("SELECT * FROM Win32_Processor", "WQL", BitOR($wbemFlagReturnImmediately, $wbemFlagForwardOnly))
If Not IsObj($oItems) Then Return SetError(2, 0, 0)
For $oIt In $oItems
Return $oIt.NumberOfLogicalProcessors
Next
EndFunc ;==>_Win32_Processor_NumberOfLogicalProcessors