vs2010 读写注册表时发现无法读取到键值

vs2010,新建程序读取注册表

    //读注册表
            RegistryKey regRead;
            //读取LocalMachine主键里的Software子键下名为“Shui360”的子键
            regRead = Registry.LocalMachine.OpenSubKey("Software\\Shui360", true);
            if (regRead == null)//如果该子键不存在
            {
                MessageBox.Show("No Data!");
            }
            else
            {
                object obj = regRead.GetValue("SqlServer"); //读取“SqlServer”项的值
            }

//关闭该对象
            regRead.Close();

调试过程中,发现一直无法读取。未发现问题的根本原因。

后重新新增一个键值,发现写入的键值位置发生变化,新的键值写到了WOW6432Node节点下

通过网上查看,原来WOW6432Node节点下是专门用来放置X86程序的,把程序改为anycpu,读到了想要的值。

参考网上:

http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/20/1940371.html

时间: 2024-10-03 22:48:02

vs2010 读写注册表时发现无法读取到键值的相关文章

Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法

原文:Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法 今天同事在做安装包的时候,有一个读取注册表路径的需求,需要根据读取的值来写配置文件,按照常规的做法,写好了注册表搜索方法,但是在测试的时候,发现总是会将系统盘下的Program Files\xxx路径读取为Program Files (x86)\xxx,如下图所示: 之后测试了如果读取非系统盘下的此路径,不会出现这个问题. 但是这个路径一般情况下都是默认安装在

javascript取得机器名,用户名,读写注册表,启动应用程序

javascript取得机器名,用户名,读写注册表,启动应用程序//javascript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件系统和应用程序,比如:有的时候我们需要得到用户的机器名,用户名,得到某个文件的信息,或者读写注册表,或者启动计算器.outlook等应用程序. 下面是一些常用的方法,每个都经过了测试.<script language="JavaScript">//取得机器名,登录域及登录用户名function getuser

VC++ 读写注册表,注册文件图标关联

#include <string> #include <iostream> #include <Windows.h> #include <shlobj.h> using namespace std; //------------------------------------------------------------------------- // 注册文件图标关联 //-----------------------------------------

读写注册表

#include <stdio.h> #include <tchar.h> #include <windows.h> #include "winsock.h" #include <string> #include <iostream> #include <Iphlpapi.h> using std::cout;using std::string;using std::iostream; using std::end

C# 操作注册表--找不到新建的键与值

根据网上的教程,新建注册表项等操作,程序没有异常.却在注册表中没有找到相关的Key与值,一直以为写的代码有问题 之后,在注册表里搜索新建的那个项,才在一个很奇怪的路径下发现值  “Wow6432Node”,搜索相关的,才发现64位的注册表 与32位的注册表是分开放的,具体参考如下网址: http://blog.csdn.net/pbymw8iwm/article/details/6931120 在VS中将程序编译环境设为X64,则在默认的Software下出现相关的键与值.

用 PowerShell 读写注册表

HKEY_CURRENT_CONFIG\test\SideBySide\Winners\amd64_.netframework_31bf3856ad364e35_none_f5dd4e94975c8e4e value="amd64.netframework31bf3856ad364e35nonef5dd4e94975c8e4e"functionResolve?Winners(value ) { $base = "HKCU:\test\SideBySide\Winners\&q

读写注册表 registrykey 创建删除

namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.listBox1.Items.Clear(); RegistryKey abc = Registry.LocalMachine; RegistryKey

C++ 读写注册表

#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h> #include <iostream> using std::cout; using std::endl; HKEY OpenKey(HKEY hRootKey, wchar_t* strKey) { HKEY hKey; LONG nError = RegOpenKeyEx(hRootKey, strKey, NU

注册表“CLSID”下面的“InprocServer32”子键是什么?

这个键值有什么用?每个CLSID下基本都有,即使没有其它项也会有此项.谁能详细说下,“InprocServer32”子键起什么作用?谢了. 刚好遇到这问题了,这是我找到的:InprocServer32下一共有两个值:1.默认值是该dll的路径信息2.ThreadingModel键值是标记该dll的线程模型,eg:Apartment================================InProcServer32的字符串值,它代表容纳此COM 类的载体应当是一个动态链接库.这个字符串值的