我尝试使用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,但这对我来说有点太难看了。
答案 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个字节。