Получение количества процессоров на Windows с реальными основами - PullRequest
1 голос
/ 13 ноября 2011

Я пытался использовать WMI, но пока безуспешно.

Dim objLocator As New OLEObject("WbemScripting.SWbemLocator")
Dim objService As OLEObject
objService = objLocator.ConnectServer(".", "root\cimv2")
Dim instances As OLEObject
instances = objService.InstancesOf("Win32_ComputerSystem")

Что бы я ни делал, следующие триггеры исключение OLE.Есть ли какой-либо другой известный способ получить количество процессоров программно от REALbasic.Я знаю, что могу выполнить vbscript из класса оболочки, но это немного уродливо для меня.

1 Ответ

2 голосов
/ 13 ноября 2011

Вы можете вызвать функцию 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 байтов.

...