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

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

このエントリーをはてなブックマークに追加
毎日の仕事のお供におすすめミネラルウォータークリスタルカイザー
電子タバコならやっぱりアイコス ネイビー
気になる車は新車購入支援サイト オートックワンで最短 60 秒で見積もり OK

レジストリの値を読み込む: 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_xxx といったクラスとは違う名前空間に存在しているため、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はWindows 7やWindows 8、Windows 10で便利に使えますよ! またVB/VBAや.Net(VB,C#)などの開発環境以外でもAPIに依存しないのでWMICやWSH(VBS,JS)・PowerShellなどスクリプト言語から有効に活用が出来ます
Windowsベースの社内ITシステムに関する資産管理、アセットマネジメントや監視業務の効率化、
インベントリ情報収集系システムツール開発にWMIはお勧めです

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

∧ ページの先頭へ…