我试过使用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编程获取CPU计数。我知道我可以从shell类执行一个vbscript,但是它对我来说有点太丑了。
可以调用GetSystemInfo函数并使用SYSTEM_INFO结构体的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字节