2011-11-13 1 views
1

WMIを使用しようとしましたが、今まで成功していませんでした。WindowsのCPU数をリアルベースで取得する

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カウントを取得する他の既知の方法はありますか?私はシェルクラスからvbscriptを実行できることを知っていますが、それは私にとってはあまりにも醜いです。

答えて

2

GetSystemInfo関数を呼び出すことができ、SYSTEM_INFO structuredwNumberOfProcessorsメンバを使用できます。

は、次のコード例を見てください:

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バイトのサイズです。

+1

うわー、この機能を忘れました。どうもありがとう! :) – Miha