一、关于注册表
有关注册表的信息请转至:http://www.cnblogs.com/qjym/p/6986394.html
二、C#操作注册表的常用类
(1)Resgistry: 静态类,它是C#中注册表的访问入口,通过它可访问到注册表的7大节点;此外它还包含一些简单的注册表键值读写方法
(2)RestryKey: 一般类,包含注册表操作的一切方法,键值的读写、删除、新建、子键的新建等(需要较高的权限)
三、注册表的访问
注册表只能逐级访问,当前键只能读写其值或者查找子键,不能向XML一样通过LINQ去访问。
四、注册表操作示例:一键设置win 7系统下CF游戏全屏
(注意:Win7系统下导致CF等一些游戏不能全屏显示的问题有的可以通过更改注册表设置解决,有的好像要修改显卡设置,具体尚未研究。这里仅以第一种情况为问题场景,介绍C#是如何操作注册表的)
#region Win7游戏全屏设置代码
//方法:通过更改注册表指定路径下的参数值实现
try
{
Console.WriteLine(“正在更改注册表设置…”);
Thread.Sleep(1500);
//CKLM至目标父键之间的键名称集合
string[] treeKeys = new string[7]
{
“SYSTEM”,
“CurrentControlSet”,
“Control”,
“GraphicsDrivers”,
“Configuration”,
“ACR0341LY4CN0034203_24_07DD_8C*SEC36490_00_07DB_1C^C1FDFFD8E5D294175FE5650D77ABFF6E”,
“00”
};
//路由到目标键的父键
RegistryKey rk = Registry.LocalMachine;
foreach (var item in treeKeys)
rk = rk.OpenSubKey(item);
//由于计算机可能存在多个显示器(如分屏时),键“00”下存在多个键,因此需要分别设置
string[] subScreenKeyNames = rk.GetSubKeyNames();
foreach (var item in subScreenKeyNames)
{
RegistryKey sk = rk.OpenSubKey(item, true);//以允许写入的方式打开键
sk.SetValue(“Scaling”, 3);//将原值”4″更改为”3″
}
Console.WriteLine(“更改成功,重启后生效!”);
}
catch (Exception ex)
{
Console.WriteLine(“更改注册表设置失败(详细信息: {0}”, ex.Message);
}
Console.Read();
#endregion
转载于:https://www.cnblogs.com/qjym/p/6991349.html