WMI Fun !! 〜 WMIに興味がある方・システム管理者必見!! 〜
 WMI Step|WMI Sample|WMI Reference|WMI Library|Personal|Link|About WMI Fun !!

WMI Fun !! > WMI Sample (VB) > レジストリの値を読み込む

Panasonic Let'snoteを長年愛用しています、その理由はMy Let'snoteで…
インクを買うよりもしかしたら安い?インクジェット複合機HP Photosmart 5510
白いご飯や日本酒にもとても合うにしんのきりこみがマイブームです

レジストリの値を読み込む: StdRegProv - WMI Sample (VB)

Topics

レジストリの値を読み込むサンプルプログラムです。名前空間が「root\default」、クラスが「StdRegProv」になります。

VBS(WSH)版のサンプルコードはこちらで公開しています。


Sample Code

Private Sub Command1_Click()

Dim Reg As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim sRet As String
Dim lRet As Long
Dim bRet() As Variant
Dim TmpbRet As String
Dim I As Long

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer(vbNullString, "root\default")
Set Reg = Service.Get("StdRegProv")

Const HKEY_LOCAL_MACHINE = &H80000002

'文字列値
Reg.GetStringValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", sRet

'DWORD値
Reg.GetDWORDValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "InstallDate", lRet

'バイナリ値
Reg.GetBinaryValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "LicenseInfo", bRet

For I = 0 To Ubound(bRet)
TmpbRet = TmpbRet & Hex(bRet(i)) & " "
Next

MsgBox "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionキーの" & _
"一部を読んだ結果です。" & vbCrLf & vbCrLf & _
"RegisteredOwner(文字列値):" & vbCrLf & sRet & vbCrLf & vbCrLf & _
"InstallDate(DWORD値)" & vbCrLf & lRet & vbCrLf & vbCrLf & _
"LicenseInfo(バイナリ値)" & vbCrLf & TmpbRet & vbCrLf & vbCrLf

Set Reg = Nothing
Set Service = Nothing
Set Locator = Nothing

End Sub


Comment

実行するとレジストリの値の読み込みを行います。レジストリ参照先は「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」です。StdRegProcクラスはWin32_&&&といったクラスとは違う名前空間に存在しているため、ConnectServerする際に名前空間が「root\default」を明示的に指定しています。
ここでは実際値を読み込む際多いと思われるものを例として書いてあります。文字列値・DWORD値・バイナリ値の3種類です。それぞれ違うメソッドが用意されていますが指定する引数は同じようなパターンです。

注意する点としては読み込みたいレジストリのパスを全て記述するわけではないというところです。パスの親ルートの名前と値の名前だけは別途指定する必要があります。親ルートを指定する型はLong形になるので事前に以下のような定数と関連付けになっていることを意識しておくことが必要です。

・HKEY_CLASSES_ROOT = &H80000000
・HKEY_CURRENT_USER = &H80000001
・HKEY_LOCAL_MACHINE = &H80000002
・HKEY_USERS = &H80000003
・HKEY_CURRENT_CONFIG = &H80000005
・HKEY_DYN_DATA = &H80000006

もっと詳しいことはWMI SDKを見てみてください。

なおWMIの使い方(VB6, VBS, VBA, VB.NET, VC#, PowerShellを対象)に関してはWMI Stepも参考にしてみてください。(WMI初心者・入門編としてもおすすめです。) 各種言語を使用したWMIを使用するたたき台としてソースコードテンプレートも公開しています。WMIプログラム/スクリプト作成時に役立てば…と思っています。


Recommended book

個人的にお勧めする本の紹介です。


ご意見・ご要望・ご感想をこちらのアンケートからお待ちしています
WMIに関して調べているけど探し物が見つからない…という方はSearch Resultから検索してみましょう!!

MCP(Microsoft Certified Professional)一応MCP(Microsoft Certified Professional)、MCA(Microsoft Certified Associate)所有してたりします…

- WMI Fun !! -
http://www.wmifun.net/
Microsoft社のテクノロジーであるWMI(Windows Management Instrumentation)の使い方を
Visual Basicを使ってのんびり公開しています
WMIはVB/VBAや.Net(VB,C#)以外でもWMICやWSH(VBS,JS)・PowerShellなどスクリプト言語からも使えますよ!
Windowsベースの社内ITシステムに関する資産管理、アセットマネジメントや監視業務の効率化、 インベントリ情報収集系システムツール開発にWMIはお勧めです

This website is created by Toh.
Copyright(C) 1997-2012 WMI Fun !!. All rights reserved.
WMI Fun !!へのリンクはご自由に…相互リンクに関するお問い合わせはアンケートページからお願いします。

∧ ページの先頭へ…