VB.Net Tutorial/Windows/Registry — различия между версиями
Admin (обсуждение | вклад)  м (1 версия)  | 
			
(нет различий) 
 | 
Текущая версия на 12:56, 26 мая 2010
Содержание
- 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
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 ClassAuthenticAMD Mobile AMD Sempron(tm) Processor 3000+ x86 Family 15 Model 28 Stepping 0 1790MHz
Get string value from Registry
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 ModuleText files are handled by C:\WINDOWS\system32\NOTEPAD.EXE.
Get value from Registry with default value
public class Test
   public Shared Sub Main
        Console.WriteLine(My.ruputer.Registry.GetValue("HKEY_CURRENT_USER\Software\yourname\subname\","PromptOnExit", "0"))
   End Sub
End ClassMy.Computer.Registry.GetValue
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 ModuleString data: "C:\Program Files\Windows NT\Accessories\WORDPAD.EXE",2
Save value to Registry: RegistryValueKind.DWord, RegistryValueKind.String, RegistryValueKind.Binary, RegistryValueKind.MultiString
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 ModuleSet Registry value
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 ModuleSet value from Registry using My.Computer.Registry
public class Test
   public Shared Sub Main
        "My.ruputer.Registry.SetValue("HKEY_CURRENT_USER\Software\name\subname\", "UserName", "new name")
   End Sub
End Class