c#下注册表操作的一个小细节
先看一个有错误的代码:
string subKeyName = @"Software\Microsoft\Windows\CurrentVersion\Run\"; //subkey name
string valueName = @"App Name"; //name of the more specific key that will hold the value, "" means (Default)
try
...{
RegistryKey reg = Registry.LocalMachine.OpenSubKey(subKeyName);
if (reg != null)
...{
reg.DeleteValue(valueName);
reg.Close();
}
}
catch (Exception ex)
...{
MessageBox.Show(this, ex.ToString());
}
执行这段代码,你可以会收到以下异常:
System.UnauthorizedAccessException
原因很简单:
RegistryKey.OpenSubKey (String) 以只读方式检索子项
public RegistryKey OpenSubKey ( string name, bool writable)writable如果需要项的写访问权限,则设置为 true。
我们需要带第二个参数,标示我们是可写方式打开的。
相关推荐
-
C#实现读取注册表监控当前操作系统已安装软件变化的方法
本文实例讲述了C#实现读取注册表监控当前操作系统已安装软件变化的方法.分享给大家供大家参考.具体实现方法如下: private static HybridDictionary GetSoftName() { string strSoftName = string.Empty; HybridDictionary hdSoftName = new HybridDictionary(); /*对注册表节点"Software/Microsoft/Windows/CurrentVersion/Uninst
-
C#通过windows注册表获取软件清单的方法
本文实例讲述了C#通过windows注册表获取软件清单的方法.分享给大家供大家参考.具体如下: foreach (string SoftwareName in Object.SoftwareList()) { textBox.Text += SoftwareName + Environment.NewLine; } //////////////////////////////////////////////////////////////////////// /// <summary> ///
-
c#读写注册表示例分享
复制代码 代码如下: //写注册表RegistryKey regWrite;//往HKEY_CURRENT_USER主键里的Software子键下写一个名为"Test"的子键//如果Test子键已经存在系统会自动覆盖它regWrite = Registry.CurrentUser.CreateSubKey("Software\\Test");//往Test子键里添两条数据项,一条名为"Name",另一条名为"Sex"//值分别
-
使用C#在注册表中保存信息的例子
写出来,方便记忆,以后要用,可以直接改改就能用. 复制代码 代码如下: using System; namespace Backend{ public class RegistryStorage { public static PageVisibility OpenAfterStart() { Microsoft.Win32.RegistryKey registryKey; PageVisibility visi
-
C# 注册表 操作实现代码
其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG. 下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息.该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHIN
-
C#读写注册表的思路及代码
NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey.这两个类都是密封类不允许被继承.下面我们分别来介绍这两个类.Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有)分别是: Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 Registry.CurrentUser 对应于HKEY_CURRENT_USER主键 Registry.LocalMachine
-
C# 多线程读取注册表,加载至TreeView
复制代码 代码如下: using System; using System.Drawing; using System.Windows.Forms; using System.Threading; using Microsoft.Win32; namespace 星空个性化助手 { public partial class Form1 : Form { private delegate void LoadTreeView左侧( TreeNode node );//声明委托类型 public Fo
-
C#操作windows注册表的方法
本文实例讲述了C#操作windows注册表的方法.分享给大家供大家参考.具体如下: 此代码演示了如何读取和写入注册表 读取注册表: private string GetRegistShellData(string RegistName) { try { string registData, SubregistData; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey(@"SOFTWA
-
c#注册表操作类分享
复制代码 代码如下: /// <summary>/// 注册表基项静态域/// /// 主要包括:/// 1.Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键/// 2.Registry.CurrentUser 对应于HKEY_CURRENT_USER主键/// 3.Registry.LocalMachine 对应于 HKEY_LOCAL_MACHINE主键/// 4.Registry.User 对应于 HKEY_USER主键/// 5.Registry.
-
C#操作注册表的方法
using Microsoft.Win32 ; 1.读取指定名称的注册表的值 复制代码 代码如下: private string GetRegistData(string name) { string registData; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); RegistryKey aimdir = software.Ope
随机推荐
- jQuery实现按钮点击遮罩加载及处理完后恢复的效果
- 用 win2003 架设共享服务器 的图文教程第1/3页
- java连接hdfs ha和调用mapreduce jar示例
- asp DataTable添加列和行的三种方法
- iOS开发之路--微博骨架搭建
- JS获取地址栏参数的两种方法(简单实用)
- srcElement表格样式
- JavaScript实现页面实时显示当前时间的简单实例
- php 获取文件后缀名,并判断是否合法的函数
- js改变style样式和css样式的简单实例
- 解析Vue2.0双向绑定实现原理
- Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2
- jQuery学习笔记 操作jQuery对象 CSS处理
- 功能强大的jquery.validate表单验证插件
- IE6/7/8中Option元素未设value时Select将获取空字符串
- 实例详解C/C++中extern关键字
- ThinkPHP基本的增删查改操作实例教程
- Java实现Json字符串与Object对象相互转换的方式总结
- java 非对称加密算法DH实现详解
- Java实现获取银行卡所属银行,验证银行卡号是否正确的方法详解
