使用realbasic获取Windows上的CPU数量

时间:2011-11-13 14:24:06

标签: windows wmi realbasic

我尝试使用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以编程方式获取CPU数量。我知道我可以从shell类执行一个vbscript,但这对我来说有点太难看了。

1 个答案:

答案 0 :(得分:2)

您可以调用GetSystemInfo函数并使用SYSTEM_INFO structure dwNumberOfProcessors 成员。

查看以下示例代码:

  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个字节。