#windows #wmi #realbasic
#Windows #wmi #realbasic
Вопрос:
Я пытался использовать WMI, но пока безуспешно.
Dim objLocator As New OLEObject("WbemScripting.SWbemLocator")
Dim objService As OLEObject
objService = objLocator.ConnectServer(".", "rootcimv2")
Dim instances As OLEObject
instances = objService.InstancesOf("Win32_ComputerSystem")
Все, что я пытаюсь сделать дальше, вызывает исключение OLE. Существует ли какой-либо другой известный способ программного получения количества процессоров из REALbasic. Я знаю, что мог бы выполнить vbscript из класса shell, но для меня это слишком некрасиво.
Ответ №1:
Вы можете вызвать функцию GetSystemInfo и использовать dwNumberOfProcessors, входящую в структуру SYSTEM_INFO.
Взгляните на следующий пример кода:
Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As Ptr)
Dim SystemInfo as MemoryBlock=new MemoryBlock(36)
GetSystemInfo(SystemInfo)
Dim ProcessorCount as Integer=SystemInfo.Long(20)
Структура SYSTEM_INFO имеет размер 36 байт. Элементы перед dwNumberOfProcessors имеют размер 20 байт.