VB6にてレジストリへの書き込み
Private Sub Command1_Click()
'Call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\run\calc", "%SystemRoot%\System32\calc.exe", "REG_SZ")
Call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmissions", 5, "REG_DWORD")
End Sub
VB.netにてレジストリへの書き込み
Module Module1
Sub Main()
'レジストリへの書き込み
'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersに書き込む)
'サブキーを開く
Dim regkey As Microsoft.Win32.RegistryKey = _
Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SYSTEM\CurrentControlSet\Services\Tcpip\Parameters")
'上のコードでは指定したサブキーが存在しないときは新しく作成される。
'作成されないようにするには次のようにする。
'Dim regkey As Microsoft.Win32.RegistryKey = _
' Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\test\subkey", True)
'レジストリへの書き込み
'文字列を書き込む(REG_SZで書き込まれる)
'regkey.SetValue("key", "KeyValue")
'整数を書き込む(REG_DWORDで書き込まれる)
regkey.SetValue("TcpMaxDataRetransmissions", 5)
'文字列配列を書き込む(REG_MULTI_SZで書き込まれる)
'Dim s As String() = {"1", "2", "3"}
'regkey.SetValue("StringArray", s)
'バイト配列を書き込む(REG_BINARYで書き込まれる)
'Dim bs As Byte() = {0, 1, 2}
'regkey.SetValue("Bytes", bs)
'閉じる
regkey.Close()
End Sub
End Module
'レジストリからの読み取り
'(HKEY_CURRENT_USER\Software\test\subkey\keyの値を取得)
'サブキーを読み取り専用で開く
Dim regkey As Microsoft.Win32.RegistryKey = _
Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\test\subkey", False)
'サブキーが存在しないときはNothingが返される
If (regkey Is Nothing) Then Return
'文字列を読み込む
Dim stringValue As String = regkey.GetValue("key")
'読み込むキーが存在しないときはNothingが返される
'キーが存在しないときに指定した値を返すようにするには次のようにする
'(ここでは"default"を返す)
'Dim stringValue As String = regkey.GetValue("key", "default")
'整数を読み込む
Dim intValue As Integer = regkey.GetValue("int")
'文字列配列を読み込む
Dim strings As String() = regkey.GetValue("StringArray")
'バイト配列を読み込む
Dim bytes As Byte() = regkey.GetValue("Bytes")
'subkey以下にあるサブキーの数を表示
Console.WriteLine("サブキーの数:{0}", regkey.SubKeyCount)
'subkey以下のすべてのサブキー名を取得
Dim keyNames() As String = regkey.GetSubKeyNames()
'表示する
Dim k As String
For Each k In keyNames
Console.WriteLine(k)
Next
'subkey以下にあるキーの値の数を表示
Console.WriteLine("キーの値の数:{0}", regkey.ValueCount)
'HKEY_CURRENT_USER\Software\test\subkey以下のすべてのキー名を取得
Dim valueNames() As String = regkey.GetValueNames()
'表示する
Dim v As String
For Each v In valueNames
Console.WriteLine(v)
Next
'閉じる
regkey.Close()