VB.Net Tutorial/Windows/Registry
Содержание
- 1 CPU information from Registry
- 2 Get string value from Registry
- 3 Get value from Registry with default value
- 4 My.Computer.Registry.GetValue
- 5 Save value to Registry: RegistryValueKind.DWord, RegistryValueKind.String, RegistryValueKind.Binary, RegistryValueKind.MultiString
- 6 Set Registry value
- 7 Set value from Registry using My.Computer.Registry
CPU information from Registry
<source lang="vbnet">Imports System Imports Microsoft.win32 Imports System.Diagnostics Imports System.Windows.Forms
Public Class Tester Public Shared Sub Main Dim m_LM As RegistryKey Dim m_HW As RegistryKey Dim m_Des As RegistryKey Dim m_System As RegistryKey Dim m_CPU As RegistryKey Dim m_Info As RegistryKey m_LM = Registry.LocalMachine m_HW = m_LM.OpenSubKey("HARDWARE") m_Des = m_HW.OpenSubKey("DESCRIPTION") m_System = m_Des.OpenSubKey("SYSTEM") m_CPU = m_System.OpenSubKey("CentralProcessor") m_Info = m_CPU.OpenSubKey("0") Console.WriteLine(m_Info.GetValue("VendorIdentifier")) Console.WriteLine(m_Info.GetValue("ProcessorNameString")) Console.WriteLine(m_Info.GetValue("Identifier")) Console.WriteLine(m_Info.GetValue("~Mhz") & "MHz") End Sub
End Class</source>
AuthenticAMD Mobile AMD Sempron(tm) Processor 3000+ x86 Family 15 Model 28 Stepping 0 1790MHz
Get string value from Registry
<source lang="vbnet">Option Strict On Imports Microsoft.Win32 Public Module GetRegistryValue
Public Sub Main() Dim appTextFiles As String = _ CStr(Registry.GetValue("HKEY_CLASSES_ROOT\txtfile\shell\open\command", _ "", String.Empty)) appTextFiles = Left(appTextFiles, InStr(1, appTextFiles, "") - 1) Console.WriteLine("Text files are handled by {0}.", appTextFiles.Trim()) End Sub
End Module</source>
Text files are handled by C:\WINDOWS\system32\NOTEPAD.EXE.
Get value from Registry with default value
<source lang="vbnet">public class Test
public Shared Sub Main Console.WriteLine(My.ruputer.Registry.GetValue("HKEY_CURRENT_USER\Software\yourname\subname\","PromptOnExit", "0")) End Sub
End Class</source>
My.Computer.Registry.GetValue
<source lang="vbnet">Option Strict On Public Module RegistryTest
Public Sub Main() Dim data As Object data = My.ruputer.Registry.GetValue("HKEY_CLASSES_ROOT\wrifile\DefaultIcon", _ String.Empty, String.Empty) If TypeOf data Is String Then Console.WriteLine("String data: " & data.ToString()) ElseIf TypeOf data Is Integer Then Console.WriteLine("Integer data: " & CInt(data)) ElseIf TypeOf data Is String() Then Console.WriteLine("String array: ") Dim dataArray() As String = DirectCast(data, String()) For ctr As Integer = LBound(dataArray, 1) To UBound(dataArray, 1) Console.WriteLine(" " & dataArray(ctr)) Next ElseIf typeOf data Is Byte() Then Console.WriteLine("Binary data: ") Dim byteArray() As Byte = DirectCast(data, Byte()) For ctr As Integer = LBound(byteArray, 1) To UBound(byteArray, 1) Console.Write(" " & Hex(byteArray(ctr)) & " ") Next Else Console.WriteLine("Unknown data type...") End If End Sub
End Module</source>
String data: "C:\Program Files\Windows NT\Accessories\WORDPAD.EXE",2
Save value to Registry: RegistryValueKind.DWord, RegistryValueKind.String, RegistryValueKind.Binary, RegistryValueKind.MultiString
<source lang="vbnet">Option Strict On Imports Microsoft.Win32 Public Module Tester
Public Sub Main Dim regKey As RegistryKey Dim keyTop As RegistryKey = Registry.CurrentUser regKey = keyTop.OpenSubkey("Software\MyCompany\MyApp", True) If regKey Is Nothing Then regKey = keyTop.CreateSubKey("Software\MyCompany\MyApp") End If Dim binValue As Byte() = {&HF0, &HFF, &H12, &HE0, &H43, &HAC} Dim strngValue As String() = {"A", "B","C", "D"} "regKey.SetValue("WindowState", 0, RegistryValueKind.DWord) "regKey.SetValue("CustomWindowCaption", "Client Contact Management",RegistryValueKind.String) "regKey.SetValue("CustomPosition", binValue, RegistryValueKind.Binary) "regKey.SetValue("CustomLabels", strngValue, RegistryValueKind.MultiString) End Sub
End Module</source>
Set Registry value
<source lang="vbnet">Option Strict On Imports Microsoft.Win32 Public Module RegistrySetValue
Public Sub Main Dim regData As Byte() = {&HF0, &HFF, &H20, &H00} Dim regTopKey As String = "HKEY_LOCAL_MACHINE" Dim regPath As String = "\Software\MyCompany\MyApp"
" Registry.SetValue(regTopKey & regPath, "BinData", regData, RegistryValueKind.Binary)
End Sub
End Module</source>
Set value from Registry using My.Computer.Registry
<source lang="vbnet">public class Test
public Shared Sub Main "My.ruputer.Registry.SetValue("HKEY_CURRENT_USER\Software\name\subname\", "UserName", "new name") End Sub
End Class</source>