c#下注册表操作的一个小细节_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。 
我们需要带第二个参数,标示我们是可写方式打开的。

时间: 2024-11-03 06:55:48

c#下注册表操作的一个小细节_C#教程的相关文章

注册表 应用程序路径-注册表操作:通过注册表来获取到一个应用程序的安装路径~!~!~!~!~!~!~!~!~!

问题描述 注册表操作:通过注册表来获取到一个应用程序的安装路径~!~!~!~!~!~!~!~!~! 10C C币快没有了,希望大神看到不要嫌弃赏金!!!!!!不吝赐教.... 解决方案 HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionuninstall软件名,如果有,一般在这个里面 解决方案二: 你能找到某个软件的注册表 逐个点开 后面 '数据'那一列里面会有路径显示 解决方案三: 一个操作注册表的类 解决方案四: 操作?还是程序控

[C#]注册表操作

原文:[C#]注册表操作 概念 在介绍注册表操作前,有必要了解注册表的一些基本常识. 在此简要介绍一下.  注册表 注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.注册表组织层次结构的格式,基于存储在它的元素的逻辑顺序. 当将信息存储在注册表中,选择要存储的信息类型所基于的适当位置. 在Windows 3.x操作系统中,注册表是一个极小文件,其文件名为Reg.dat,里面只存放了某些文件类

C# 注册表 操作实现代码_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

bat与注册表操作的方法分析[原创]_DOS/BAT

bat(批处理)操作注册表的方法,我知道的应该有两种1,结合用reg.exe实现读写注册表2,用bat输出文件,然后regedit /s 1.reg 这样的格式来实现 输出vbs等都是这种 echo cmd.exe /k dir c: > c:\windows\system32\1.bat reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "test" /d "c:\win

二进制-新手请教java文件操作的一个小问题~十分感谢

问题描述 新手请教java文件操作的一个小问题~十分感谢 这个类的功能是将任意一个二进制文件中的0压缩成0的数目+0的形式 即:将二进制文件中16进制显示的00压缩成 "0的数目+00的形式" 如00 00 00 1A 压缩成03 00 1A 待压缩文件16进制内容: 代码执行后后生成的文件却成了如图所示的情况 求教什么地方出错了,万分感谢. import java.io.*; public class FileCompression { public static void main

winfrom 注册表操作的问题

问题描述 winfrom 注册表操作的问题 判断下HKEY_LOCAL_MACHINESOFTWARExxxhc_Config key这个键值存不存在?我怎么把他拿出来 解决方案 http://www.aiweibk.com/2885.html

.Net的注册表操作

注册表 重要的类和操作: Microsoft.Win32.Registry : 提供访问注册表中的值和子项的基 Registrykeys, 主要的几个方法有 CurrentUser(对应注册表的HKEY_CURRENT_USER), LocalMachine(对应注册表的HKEY_LOCAL_MACHINE) Microsoft.Win32.RegistryKey :封装了对注册表项的操作. 常用的方法属性有: 1) 对项的操作: OpenSubKey, CreateSubKey, Delete

vbscript Registry 注册表操作实现代码(读写删除)_vbs

VBScript Code: 复制代码 代码如下: ' Create a WSH Shell object: Set wshShell = CreateObject( "WScript.Shell" ) ' ' Create a new key: wshShell.RegWrite "HKCU\TestKey\", "" ' Create a new DWORD value: wshShell.RegWrite "HKCU\TestKe

完整的注册表操作实例 VBS脚本_vbs

①创建主键.创建各类型的键值. ②读取键值并分析键值类型. ③枚举主键及键值. ④判断键或键值是否存在. ⑤查询注册表键的操作权限. ⑥监视注册表根键.主键.键值,当发现变动时提示. 复制代码 代码如下: '''注册表查询/操作 On Error Resume Next Const HKEY_CLASSES_ROOT = &H80000000'''设置注册表5大根键,HKCR-----------① Const HKEY_CURRENT_USER = &H80000001'''HKCU C