CPUの2次キャッシュの容量を取得するには?

解決


ガリット  2009-05-02 13:18:26  No: 101697  IP: 192.*.*.*

いつもご参考にさせて頂いております。
早速、質問なのすが、
WindowsApplicationで、
CPUの2次キャッシュを使用しているPCのスペックに合わせるように、
レジストリを書き換えるプログラムを作成しております。
そこで、Form_Load時に2次キャッシュの容量を取得し、
ラベルかテキストボックスに表示させたいと思っております。
そのため、2次キャッシュの容量を取得を取得するコードを色々調べたのですが、中々見つからないのでわかる方がおりましたら、ぜひ教えて下さい。
お願いします。
自分で調べて、唯一参考になりそうだったのが、
コマンドプロンプトで、
C:\>wmic Memcache get maxcachesize,description
と入力しまして、容量を取得するものなのですが、これは、
wmicをインストールしないといけなくて、ローカルのマシンだと、
wmicがマシンに持ってこれなくて、取得できませんでした。
ローカルのみで取得したいので、お願いします。
使用している環境は、
Visual Studio 2005
.NET framework2.0
XP Pro
です。よろしくお願いします。

編集 削除
ガリット  2009-05-02 16:03:12  No: 101698  IP: 192.*.*.*

すみません、言語を記述し忘れました。
言語は、VB.NETです。
よろしくお願いします。

編集 削除
オショウ  2009-05-02 16:44:43  No: 101699  IP: 192.*.*.*

一応できるようです。

http://www.shise.net/wiki/wiki.cgi?page=C%23%2F%A5%E1%A5%E2%2FWMI

参考まで・・・

以上。

編集 削除
ガリット  2009-05-03 07:57:46  No: 101700  IP: 192.*.*.*

オショウ様、無事解決いたしました。
誠にありがとうございました。
一応、完成コードを記載しておきます。
本当にありがとうございました。

(完成コード)
前提として、参照の追加から、「System Management」を参照しておく。

Imports System.Management   'Windowsのシステム情報を管理しているクラス

 Private Sub _01_L2Cache_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'WMIで取得した中で、更にどの情報を取得するか指定し、それを変数に入れる(2次キャッシュの容量)
        Dim MyProcessor As New ManagementObjectSearcher("select L2CacheSize from Win32_Processor")

        'ManagementObjectのインスタンスを作成
        Dim MyMOC As ManagementObject

        'インスタンスから、2次キャッシュの容量を取得し、Labelに表示させる
        For Each MyMOC In MyProcessor.Get

            'L2Cache_Size_lblに表示させる
            L2Cache_Size_lbl.Text = "このPCの2次キャッシュの容量は、" & (MyMOC("L2CacheSize")) & "KBです。"

        Next MyMOC

以上で、ラベルに2次キャッシュの容量を表示させることができました。
最後にオショウ様、本当にありがとうございました。

編集 削除