Windows api关于注册表的操作经验和总结_注册表

读取注册表常用的函数
RegOpenKeyEx 用于打开一个键
RegSetValueEx 用于设置一个键的键值
RegQueryValueEx 用于读取一个键的值
RegCloseKey 用于关闭RegOpen打开的键

RegQueryValueEx通常连用两次来读取键值,第一次只读取键的大小,然后分配内存,然后再用一次RegQueryValueEx来读取键值到buffer。
下面是一个读取windows下的path键值的例子

 HKEY hk;

  int result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
               _T("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment"),
               NULL,
               KEY_READ, &hk );

  if(result != ERROR_SUCCESS)
  {
    if(result == ERROR_FILE_NOT_FOUND)
    {

      MessageBox(g.hwnd,_T("no such key in RegOpenKeyEx"),_T("title"),MB_ICONWARNING);
    }

    else

    return;
  }

  DWORD lsize;

  result = RegQueryValueEx(hk, _T("Path"),NULL,NULL,
              NULL, &lsize);

  if(result != ERROR_SUCCESS)
  {
    if(result == ERROR_FILE_NOT_FOUND)
    {

      MessageBox(g.hwnd,_T("no such key in RegQueryValue"),_T("title"),MB_ICONWARNING);
    }
    else if(result == ERROR_MORE_DATA)
    {
      MessageBox(g.hwnd,_T("need more buffer"),_T("title"),MB_ICONWARNING);
    }
    else

    return;
  }
  TCHAR *value = (TCHAR * )malloc(lsize * sizeof(TCHAR));
  result = RegQueryValueEx(hk, _T("Path"),NULL,NULL,
              (LPBYTE)value, &lsize);
  if(result != ERROR_SUCCESS)
  {
    if(result == ERROR_FILE_NOT_FOUND)
    {

      MessageBox(g.hwnd,_T("no such key in RegQueryValue"),_T("title"),MB_ICONWARNING);
    }
    else if(result == ERROR_MORE_DATA)
    {
      MessageBox(g.hwnd,_T("need more buffer"),_T("title"),MB_ICONWARNING);
    }
    else

    return;
  }
  SetWindowText(g.hwndEdit,value);
  free(value);
  RegCloseKey(hk);

新手常见问题
RegSetValueEx运行时失败,返回代码为5,
解决方法:这种情况是由于对注册表访问权限不够,拒绝访问的意思,因此,注意看看权限是否不够,如果改为
KEY_ALL_ACCESS就没问题了,这样读写等权限都可以。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 注册表
, api
操作
windows api 注册表、注册表 api、windows 注册表、windows注册表详解、windows注册表清理,以便于您获取更多的相关知识。

时间: 2024-10-29 09:11:45

Windows api关于注册表的操作经验和总结_注册表的相关文章

Windows注册表应用技巧三则_注册表

1.防止匿名用户登录 虽然Windows 98可以为每个用户定制各自的使用界面并指定口令,但任何人都能通过点击登录窗口中的"取消"或按Esc键进入系统,即所谓匿名登录. 下述方法可以防止匿名用户登录:打开注册表编辑器(运行Regedit),在HKEY_LOCAL_ MA-CHINE\NetWork\Logon下新建DWORD类型"MustBeValidated",其值为"1". 如果自己忘记密码进不去了,可以以安全模式进入,然后将其值改为&quo

Win2k注册表备份恢复详解_注册表

Windows 2000 将它的配置信息存储在名为注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000 在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注册表中的某一主键或子键保存为文本文件,或者打印出

亡羊补牢 注册表损坏之后的恢复_注册表

自Windows 95系统后,Windows系统采用了注册表的管理机制.注册表的数据保存在以下两个系统文件中:User.dat和System.dat.注册表是Windows系统正常运行的保证之一.一旦注册表出现故障,就可能导致Windows系统不能正常运行. 正是基于注册表的重要性,Windows系统采取了相应的保护措施.保护措施的基本方法是将上一次正常启动系统时的注册表数据文件和相关的INI文件进行备份,一旦出现故障后,通过恢复上次正常启动的配置来进行系统的恢复.下面介绍一下在Win 98系统

玩转注册表 系统注册表文件解锁奇招_注册表

很多人由于浏览了恶意网站从而导致注册表被锁,相关报刊介绍了各种各样的处理方法,例如通过编辑注册表文件或用超级兔子等工具来进行修改等等.但是如果你手头一时无此类工具,又记不住注册表文件的内容,该怎么办呢?其实,你完全可以利用微软在系统安装光盘中所提供的另一款利器--系统策略编辑器(Poledit),轻松地解决这个问题.不仅如此,你还可以利用系统策略编辑器来实现一些只有通过修改注册表才能实现的功能. 我们以在Windows 9x操作系统下的使用为例来介绍.首先将安装光盘中Tools\Reskit\N

Windows注册表常用技巧十例_注册表

1.防止匿名用户登录 虽然Windows可以为每个用户定制各自的使用界面并指定口令,但任何人都能通过点击登录窗口中的"取消"或按ESC键进入系统,即所谓匿名登录.下述方法可以防止匿名用户登录. 在HKEY_LOCAL_MACHINE\NetWork\Logon下新建DWORD类型"MustBeValidated",其值为1.(附:如果自己都进不去了,可以以安全模式进入,然后将其值改为0.)注意:在对等网络下该方法不起作用. 2.重排输入法 您可以将所有输入法按自已的

Windows XP系统注册表十则设置技巧_注册表

用XP已经好久了,本人试验和整理了许多很有意思的注册表修改技巧,这里写出来给大家参考.说到注册表修改,有一句话总是不得不提:小心谨慎.修改之前必须备份,一步失误可能让你的机器翻脸不认人.在下面的叙述中,如果指定位置没有这里所说的键/值,那么你得自己新建一个.除非特别说明,所有这里谈到的值都是REG_DWORD类型. 一.提高XP的响应速度 找到HKEY_CURRENT_USERControl PanelDesktop子键,修改HungAppTimeout值.HungAppTimeout值表示系统

修改Windows注册表系统文件为宽带加速_注册表

随着网络技术的发展,Internet的接入速度越来越快,从最初的56K"猫",一直到10M/100M高速光纤,接入方式多种多样.而作为Internet的末端,Windows操作系统为了支持不同的接入设备,适应不同的网络环境,在程序设置方面也相对保守一些,因此,常有用户反映"宽带不快",一些网络优化软件则应运而生,通过修改Windows操作系统的注册表或相关文件来达到为宽带提速的目的,如Windows优化大师.ADSL超频奇兵等,但效果却不太明显. Speedguid

调整Windows XP注册表 享受极速宽带上网_注册表

文/天极网 Windows XP对宽带连接速度进行了限制,是否意味着我们可以改造操作系统,得到更快的上网速度呢? 答:现在宽带网络正逐步走入家庭,得到广泛的应用,但是有的宽带网用户的网页浏览速度.上传及下载速度还不尽如人意.其实在Windows 2000或XP中,通过修改注册表,我们可以让宽带网的速度有大幅的提高,真正享受极速上网的乐趣.   运行"regedit",以打开"注册表管理器":然后,按以下路径找到HKEY_LOCAL_MACHINE\SYSTEM\Cu

调整Windows注册表享受极速宽带上网_注册表

问:看到不少资料显示,Windows XP对宽带连接速度进行了限制,是否意味着我们可以改造操作系统,得到更快的上网速度呢? 答:现在宽带网络正逐步走入家庭,得到广泛的应用,但是有的宽带网用户的网页浏览速度.上传及下载速度还不尽如人意.其实在Windows 2000或XP中,通过修改注册表,我们可以让宽带网的速度有大幅的提高,真正享受极速上网的乐趣. 图1 运行"regedit",以打开"注册表管理器":然后,按以下路径找到HKEY_LOCAL_MACHINE\SYS