Csharp/C Sharp/Windows/Registry
Содержание
Enumerating Registry Keys
<source lang="csharp"> using System; using Microsoft.Win32;
class Class1 { static void Main(string[] args) { RegistryKey myRegKey=Registry.LocalMachine; myRegKey=myRegKey.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"); String [] subkeyNames = myRegKey.GetSubKeyNames(); foreach (String s in subkeyNames) { RegistryKey UninstallKey=Registry.LocalMachine; UninstallKey=UninstallKey.OpenSubKey ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + s); Object oValue=UninstallKey.GetValue("DisplayName"); Console.WriteLine(oValue.ToString()); } } } </source>
Get registry value from LocalMachine key
<source lang="csharp"> using System; using System.Windows.Forms; using Microsoft.Win32; public class FormSettingStore {
public static void Main(){ RegistryKey key = Registry.LocalMachine.CreateSubKey("KeyName"); key.SetValue("Height", "100"); key.SetValue("Width", "100"); key.SetValue("Left", "100"); key.SetValue("Top", "100"); Console.WriteLine((int)key.GetValue("Height", "150")); Console.WriteLine((int)key.GetValue("Width", "150")); Console.WriteLine((int)key.GetValue("Left", "150")); Console.WriteLine((int)key.GetValue("Top", "150")); }
}
</source>
Read value from registry
<source lang="csharp">
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Resources; using Microsoft.Win32; // For event log. using System.Diagnostics; class Test { static void Main(string[] args) { // Save user prefs to reg. RegistryKey regKey = Registry.CurrentUser; regKey = regKey.CreateSubKey("Software\\Intertech\\YourKeyRes"); regKey.SetValue("CurrSize", "29"); regKey.SetValue("CurrColor", "Red"); Console.WriteLine("Settings saved in registry"); RegistryKey regKey1 = Registry.CurrentUser; regKey1 = regKey1.CreateSubKey("Software\\Intertech\\YourKeyRes"); Console.WriteLine(regKey1.GetValue("CurrSize", "30")); Console.WriteLine(regKey1.GetValue("CurrColor", "Blue")); } } </source>
Retrieve the CPU Type and Speed from the Registry
<source lang="csharp"> using System; using Microsoft.Win32;
class Class1 { static void Main(string[] args) { RegistryKey RegKey = Registry.LocalMachine; RegKey = RegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"); Object cpuSpeed = RegKey.GetValue("~MHz"); Object cpuType = RegKey.GetValue("VendorIdentifier"); Console.WriteLine("You have a {0} running at {1} MHz.",cpuType,cpuSpeed); } } </source>
Save value to registery
<source lang="csharp">
using System; using System.Resources; using Microsoft.Win32; using System.Diagnostics; class Test { static void Main(string[] args) { // Save user prefs to reg. RegistryKey regKey = Registry.CurrentUser; regKey = regKey.CreateSubKey("Software\\Intertech\\YourKeyRes"); regKey.SetValue("CurrSize", "29"); regKey.SetValue("CurrColor", "Red"); Console.WriteLine("Settings saved in registry"); } } </source>
Write a Text and DWord Value to the Registry
<source lang="csharp"> using System; using Microsoft.Win32;
class Class1 { static void Main(string[] args) { RegistryKey RegKeyWrite = Registry.CurrentUser; RegKeyWrite = RegKeyWrite.CreateSubKey("Software\\CSHARP\\WriteRegistryValue"); RegKeyWrite.SetValue("StringValue","TRUE"); RegKeyWrite.SetValue("Number",100); RegKeyWrite.Close(); RegistryKey RegKeyRead = Registry.CurrentUser; RegKeyRead = RegKeyRead.OpenSubKey ("Software\\CSHARP\\WriteRegistryValue"); Object regSuccessful = RegKeyRead.GetValue("StringValue"); Object regAttemptNumber = RegKeyRead.GetValue("Number"); RegKeyRead.Close(); if ((string)regSuccessful == "TRUE") Console.WriteLine("Succeeded on attempt # {0}",regAttemptNumber); else Console.WriteLine("Failed!"); } } </source>