「VBScript」レジストリの操作
VBScript 使ってレジストリの操作を行なってみたので、その時のメモ。
以下の操作を行なってみました。
1. 読み出し、書き込み、削除
2. 存在のチェック
以下、使用した VBScript です。
※ Java 関連のレジストリで動作確認してますが、特に意味はないです。
1. 取得
Set WshShell = CreateObject("WScript.Shell") reg1 = "HKCU\Software\JavaSoft\Java Update\Policy\LastUpdateBeginTime" WScript.Echo WshShell.RegRead(reg1) reg2 = "HKCU\Software\JavaSoft\Java Update\Policy\Hoge" rtn2 = WshShell.RegWrite(reg2, 0, "REG_DWORD") reg3 = "HKCU\Software\JavaSoft\Java Update\Policy\Uga" rtn3 = WshShell.RegWrite(reg3, 0, "REG_BINARY") reg4 = "HKCU\Software\JavaSoft\Java Update\Policy\Oro" rtn4 = WshShell.RegWrite(reg4, "Oro", "REG_SZ") '上記で追加したレジストリの削除する 'WshShell.RegDelete(reg2) 'WshShell.RegDelete(reg3) 'WshShell.RegDelete(reg4)
ドキュメントは以下になる。
・RegRead
http://msdn.microsoft.com/ja-jp/library/cc364416.aspx
・RegWrite
http://msdn.microsoft.com/ja-jp/library/cc364417.aspx
・RegDelete
http://msdn.microsoft.com/ja-jp/library/cc364415.aspx
2. 存在のチェック
'Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 'Const HKEY_LOCAL_MACHINE = &H80000002 'Const HKEY_USERS = &H80000003 'Const HKEY_CURRENT_CONFIG = &H80000005 strComputer = "." Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "Software\JavaSoft\Java Update\Policy" strValueName = "LastUpdateBeginTime" objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue If IsNull(strValue) Then Wscript.Echo "The registry key does not exist." Else Wscript.Echo "The registry key exists." End If
GetStringValue の辺りは、チェックするレジストリの型にあわせて変更する必要があるっぽい。
以下を参考にさせていただきました。
http://gallery.technet.microsoft.com/scriptcenter/e9dcec76-cc6b-46b7-95b1-39ba7e81765e
ドキュメントは以下になる。
・GetStringValue
http://msdn.microsoft.com/en-us/library/windows/desktop/aa390788(v=vs.85).aspx
・GetDWORDValue
http://msdn.microsoft.com/en-us/library/windows/desktop/aa390445(v=vs.85).aspx
・GetBinaryValue
http://msdn.microsoft.com/en-us/library/windows/desktop/aa390440(v=vs.85).aspx
以上です。