windows注册表 api

Windows注册表操作类:编程与API使用指南 本文还有配套的精品资源,点击获取 简介:在Windows系统中,注册表是存储系统设置、应用配置和用户数据的数据库。注册表操作类为开发者提供了一组方法,用于进行注册表键值的读取、写入、创建、删除等操作。注册表API函数,如 RegOpenKeyEx 、 RegQueryValueEx 、 RegCreateKeyEx 等,是与Wind... 阅读详情
 注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: 
RegCloseKey RegConnectRegistry  RegCreateKey  RegCreateKeyEx  RegDeleteKey  RegDeleteVale  
RegEnumKey  RegFlushKey  RegGetKeySecurity(此函数,98不适用)  RegLoadKey 
RegNotifyChangeKeyValue(98不适用)  RegOpenKey  RegOpenKeyEx  RegQueryInfoKey  RegQueryValue 
RegQueryValueEx  RegReplaceKey  RegRestoreKey(98不适用) RegSaveKey  RegSetKeySecurity(98不适用)   RegSetValue  RegSetValueEx  RegUnLoadKey  
  我们对经常使用的几个函数进行介绍。 
  1·RegClose() 
  原形:LONG RegCloseKey( 
  HKEY hKey  // 释放已经打开的注册表句柄 
     ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果。关闭一个键后,句柄变为非法,以使其不可再次被使用。为系统重新使用而释放句柄。 
  例子 
BOOL bRet = TRUE; 
if( m_hKey == NULL ) 
  return( FALSE ); 
bRet = ( RegCloseKey( m_hKey ) == ERROR_SUCCESS ); 
m_hKey = NULL; 
return( bRet ); 

  2·RegCreateKeyEx()和RegCreateKey() 
  原形:LONG RegCreateKeyEx( 
        HKEY hKey,        // 主键名称 
        LPCTSTR lpSubKey,     // 子键名称或路径 
        DWORD Reserved,      // 保留,为0 
        LPTSTR lpClass,      // 没弄懂,我设为空也差不多 
        DWORD dwOptions,      
             /* 对你建立的键的一些选项,可以是这些值:REG_OPTION_NON_VOLATILE,REG_OPTION_VOLATILE,REG_OPTION_BACKUP_RESTORE第一个是默认的了。一般用第一个就可以了。*/ 
        REGSAM samDesired,    // 设置你对你建立的这个键的访问权限 
        LPSECURITY_ATTRIBUTES lpSecurityAttributes, 
             //不太明白 
        PHKEY phkResult,     // 指向你建的句柄 
        LPDWORD lpdwDisposition  //用来查看是打开一个已经有的键,还是新建了键 
      ); 
  RegCreateKey()函数简单了不少,请自己看了。 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS. 
  解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。当在创建或打开注册表的键时,需要指定访问权限,而这些访问权限需要到一级。默认的权限是KEY_ALL_ACCESS权限。还有KEY_CREATE_LINK创建字符链权限,KEY_CREATE_SUB_KEY创建子键权限,KEY_EXECUTE读取键权限,KEY_NOTIFY获得修改键通知的权限,KEY_QUERY_VALUE查询键值的权限,KEY_SET_VALUE设置数据值的权限。注意不能在根一级建键,在注册表的根一级仅可有预定义的键。具体使用,请查看联机手册。 
例子: 
   HKEY m_hkey; 
   DWORD dwDisposition; 
   long ret0=(RegCreateKeyEx 
      (HKEY_CURRENT_USER,"REGD//",0,NULL, 
      REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hkey,&dwDisposition)); 
   if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行 
   { 
      MessageBox("错误: 无法打开有关的hKEY!"); 
      return; 
   } 
   if(dwDisposition==REG_OPENED_EXISTING_KEY) 
      MessageBox("打开了一个已经存在的键"); 
   else 
   { 
     if(dwDisposition==REG_CREATED_NEW_KEY) 
        MessageBox("建立一个新键"); 
   } 
   RegClosekey(m_hkey); 

  3·RegOpenKey()和RegOpenKeyEx() 
  原形:LONG RegOpenKeyEx( 
        HKEY hKey,     // 要打开主键名 
        LPCTSTR lpSubKey, // 子键或路径 
        DWORD ulOptions,  // 保留,为0 
        REGSAM samDesired, // 操作权限标志 
        PHKEY phkResult  // 指向你打开键的句柄 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS. 
  解释:该函数负责打开指定的键或子键,如果不存在他不建立。其他和RegCreateKeyEx()和RegCreateKey()基本相同。 

  4·RegDeleteKey() 
  原形:LONG RegDeleteKey( 
        HKEY hKey,     // 已打开的键的句柄 
        LPCTSTR lpSubKey  // 要删除的子键或路径,传如""将删除key本身 
       ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  该函数用来删除注册表中的一个键值的。在用此函数时需要注意98与NT的差异。在NT中在删除一个键之前,要求必须删除所有子键,需要从下向上递归删除所有子键,而WINDOWS98没有他那么复杂,只要删除键及其所有子键就可以啦。 

  5·RegQueryValue()和RegQueryValueEx() 
  原形:LONG RegQueryValueEx( 
        HKEY hKey,      // 已打开的键的句柄 
        LPTSTR lpValueName, // 要查询值的名称,传如""为查询键下的默认值 
        LPDWORD lpReserved, // 保留,为0 
        LPDWORD lpType,   // 查询的类型 
        LPBYTE lpData,    // 数据存放的地址 
        LPDWORD lpcbData   // 数据长度+1 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:读取某子键下特定名称的值。 
  例子 
   CString m_strQ;//用来存放查询来的字符串值 
   DWORD m_dwCount;//记录字符串的长度+1(包括NULL字符) 
   ::RegQueryValueEx(m_hkey,"",0,NULL,NULL,&m_dwCount);//先查询出字节空间  
   ret1=(::RegQueryValueEx 
        (m_hkey,"",0,NULL,(unsigned char *)m_strQ.GetBuffer(m_dwCount),&m_kk)); 
   m_strQ.ReleaseBuffer(); 
   MessageBox(m_strQ); 

  6·RegSetValue()和RegSetValueEX() 
  原形:LONG RegSetValueEx( 
        HKEY hKey,      // 已打开的键的句柄 
        LPCTSTR lpValueName, // 要查询值的名称,传如""为查询键下的默认值 
        DWORD Reserved,   // 保留 
        DWORD dwType,    // 变量的类型 
        CONST BYTE *lpData, // 变量数据的地址 
        DWORD cbData     // 变量的长度 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:设置某子键下特定名称的值。 

  7·RegEnumValue() 
  原形:LONG RegEnumValue( 
        HKEY hKey,       // 要查询的已打开的键的句柄 
        DWORD dwIndex,     // 读取名称的索引号 
        LPTSTR lpValueName,   // 返回所读取的名称 
        LPDWORD lpcbValueName, // 返回读取名称的长度,不含chr(0) 
        LPDWORD lpReserved,   // 保留,为0 
        LPDWORD lpType,     // 返回所读取的数据类型 
        LPBYTE lpData,     // 返回所读取的数据 
        LPDWORD lpcbData    // 返回所读取的数据长度 
     ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:列出某Key的所有名称的值,变化索引即可遍历整个键下的名称和数据。 

  8·RegDeleteValue() 
  原形:LONG RegDeleteValue( 
        HKEY hKey,      // 要删除的键的句柄 
        LPCTSTR lpValueName  // 要删除的名称 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:删除某Key的某一名称 

  9·RegEnumKey()和RegEnumKeyEx() 
  原形:LONG RegEnumKeyEx( 
        HKEY hKey,     // 要列举的键的句柄 
        DWORD dwIndex,   // 索引 
        LPTSTR lpName,   // 子键的名称 
        LPDWORD lpcbName,  // 子键名称的长度 
        LPDWORD lpReserved, // 保留 
        LPTSTR lpClass,   // address of buffer for class string 
        LPDWORD lpcbClass, // address for size of class buffer 
        PFILETIME lpftLastWriteTime 
           // address for time key last written to 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  返回注册表键及其子键的详细信息。 

  10·RegQueryInfoKey() 
  原形:LONG RegQueryInfoKey( 
        HKEY hKey,        // 已打开的键的句柄 
        LPTSTR lpClass,      // 类型名称,仅使用于NT。若不使用则传入Null 
        LPDWORD lpcbClass,    // 类型名称的长度 
        LPDWORD lpReserved,    // 保留 
        LPDWORD lpcSubKeys,    // 返回子键的数目               
        LPDWORD lpcbMaxSubKeyLen, // 返回最长的子键长度               
        LPDWORD lpcbMaxClassLen, // 返回最长的类长度 
        LPDWORD lpcValues,    // 返回值的数目               
        LPDWORD lpcbMaxValueNameLen, // 返回最长的值项名称的长度 
        LPDWORD lpcbMaxValueLen, // 返回最长的值的长度 
        LPDWORD lpcbSecurityDescriptor, //返回安全描述,仅适用于 NT 
        PFILETIME lpftLastWriteTime  // 返回键最后被写入的时间,仅适用于 NT 
     ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:返回注册表键的信息,包括类名、子键数量、最长子键名、值的数量、最长值数据、安全描述符的长度以及上一次写入的时间等。 

  11·RegLoadKey() 
  原形:LONG RegLoadKey( 
        HKEY hKey,    // 打开的句柄 
        LPCTSTR lpSubKey, //子键的路径          
        LPCTSTR lpFile  // 要写入注册表信息的文件 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:从指定的文件恢复注册表键的子键信息到注册表。 

  12·RegReplaceKey() 
  原形:LONG RegReplaceKey( 
        HKEY hKey,     // handle to open key 
        LPCTSTR lpSubKey, // address of name of subkey 
        LPCTSTR lpNewFile, // 在替换前生成新的备份文件 
        LPCTSTR lpOldFile // 需要覆盖上注册表的文件 
      ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:从指定的文件恢复注册表键的子键信息到注册表并替换原有的值,并生成新的备份文件 

  13· RegSaveKey() 
  LONG RegSaveKey( 
     HKEY hKey,    // 要保存的句柄 
     LPCTSTR lpFile, // 保存子键的文件 
     LPSECURITY_ATTRIBUTES lpSecurityAttributes    //不太懂          
    ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:保存键及其子键信息到指定的文件。 

  14· RegConnectRegistry() 
  原形:LONG RegConnectRegistry( 
        LPTSTR lpMachineName, //远程计算机的名称 
        HKEY hKey,    // 预先注册的句柄 
        PHKEY phkResult  // 远程计算机上的句柄 
     ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  解释:连接到远程系统的注册表。 

  15·RegNotifyChangeKeyValue() 
  当修改指定的注册表对象时提供通知。 

  16· RegUnloadKey() 
  LONG RegUnLoadKey( 
     HKEY hKey,     // handle to open key 
     LPCTSTR lpSubKey  // address of name of subkey to unload 
    ); 
  返回值:不成功返回非0,成功返回ERROR_SUCCESS 
  删除注册表键及其所有的子键。
掌握注册表操作:深入理解Windows注册表API 本文深入探讨了Windows系统下注册表操作的API函数,包括它们的用法、特点以及与Windows NT/2000和MFC的兼容性问题。通过实例演示如何使用这些API进行注册表的读取、写入、创建和删除操作,以及它们在实际编程中的应用场景。 阅读详情

相关推荐

win32 API函数注册表监控C#

使用Microsoft.win32监控注册表是否被更改,有类和DEMO

Windows 注册表相关API总结

一、注册表简介 注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息。可以说计算机上所有针对硬件、软件、网络的操作都是源于注册表的。 可以使用 regedit.exe 这个系统提供的注册表编辑器去管理编辑注册表,他只是一个编辑器不是注册表的文件。 如上图所示,注册表预设有五个根键: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USER HKEY_CURRENT_CONFI

空持百千偈的博客 4997

注册表操作api

注册表操作api 说明: Api接口 C# 版本,调用相关的入口函数,获取相应的注册表中的要查询的结果

Win32编程之注册表的相关操作(十四)

/ 打开注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion。函数是 Windows API 中的一个函数,用于打开注册表中的一个指定注册表项的句柄。函数用于设置或创建注册表中指定键的值。通过该函数,您可以检索注册表项中的字符串、二进制数据、整数值等不同类型的数据。通过该函数,您可以删除注册表中的一个值,以清除不再需要的注册表数据。HKEY hKey, // 指定一个打开的注册表项的句柄。

1299

注册表监控程序 (Hook API) VC 6.0

注册表监控程序 该程序的作用是记录系统发生的注册表操作,(只记录成功的,忽略失败的) 请使用VC6.0编译,另外需要安装较新的Platform SDK,比如Microsoft Platform SDK for Windows 2003 或 Microsoft Platform SDK for Windows XP SP2 Hook API 采用微软detours静态库 "Hook"目录是hook.dll源码 "RegisterMon"目录是界面程序源码,VC6+MFC+Single Document "bin"目录是生成目录 转帖请保留此文件 作者:毕飞

别光看教程了!手把手带你用STM32F103C8T6最小系统板点亮第一个LED(附完整电路图)

本文详细介绍了如何使用STM32F103C8T6最小系统板点亮第一个LED,从硬件连接到软件开发环境搭建,再到编写和下载程序,手把手教你完成STM32入门的第一步。适合初学者快速上手STM32开发,附完整电路图和代码示例。

weixin_28678831的博客 194

玩转注册表,这几个windowsAPI函数就够了

玩转注册表,这几个windowsAPI函数就够了

qq_31716541的博客 1160

解决windows10下无法安装.net framework 3.5(包括.net2.0和3.0)

入域电脑,win10系统中安装 .net framework 3.5(包括.net2.0和3.0)

God_me_1的博客 4万+

使用Windows API操作注册表

来自:http://blog.youkuaiyun.com/yunboy4/article/details/4595230 使用Windows API操作注册表 分类: Win322009-09-25 19:22 354人阅读 评论(2) 收藏 举报  注册表中储存着大量的系统设置数据,为了方便管理系统,注册表被设计成树形结构,结构最顶层称为主键,主键下面有注册表项,每个注册

anhkgg的专栏 9137

Visio 2013 Professional密钥安装激活全攻略:版本匹配与故障排查

产品密钥是软件授权体系中的核心凭证,用于验证用户对软件的使用权限。在微软Office产品线中,Visio 2013 Professional采用25位字符的密钥机制,通过联网或电话方式完成激活。正确使用密钥不仅能确保软件功能完整,还能避免因授权问题导致的工作中断。对于企业IT运维和个人用户而言,掌握密钥类型辨析、安装包匹配规则以及激活失败排查方法,是保障老版本软件稳定运行的关键。本文围绕Visio 2013 Professional,详细讲解密钥输入、激活流程及常见错误代码处理,帮助读者高效完成部署与维护。

weixin_28487433的博客 332

2023年全国职业院校技能大赛高职组“区块链技术应用”赛项赛卷(3卷)解析

我们先绘制题组中所有设计图我这边作图用的国内的在线作图工具。

2301_76737000的博客 5419

windows注册表API使用

RegCreateKeyEx() RegClose() RegQueryValueEx RegSetValueEx RegOpenKeyEx RegCreateKeyEx function 新建指定注册表项,如果已经存在则打开。注册表项名称不区分大小写。 LONG WINAPI RegCreateKeyEx(   _In_        HKEY hKey,   _In_

1151

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南

本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。

2201_76125261的博客 1554

Windows操作注册表API简单例子

 //Windows操作注册表API简单例子 //操作注册表主要包括下面几个系统API //1、RegOpenKeyEx    打开注册表项 //2、RegCreateKeyEx  创建注册表项 //3、RegCloseKey     关闭注册表项 //4、RegQueryValueEx 读取注册表键值 //5、RegSetValueEx   写入注册表键值 //6、RegDe

走向辉煌 3707

通过InoDriverShop伺服调试软件连接汇川SV660F系列伺服的具体方法示例

通过InoDriverShop伺服调试软件连接汇川SV660F系列伺服的具体方法示例

Robot_PLC_HMI_Automation 1万+

Visual Studio调试技巧与实用方法总结(实战经验分享)

本文根据多年的项目实战经验,详细介绍一些Visual Studio常用的高效调试手段与技巧。

dvlinker的技术专栏 3万+

【原创】注册表的读写API(windows)

/// 根键值 HKEY m_base; m_base = HKEY_CURRENT_USER; /// 注册表位置 wxString m_path; m_path = wxT("Software\\ThpClient\\DirPath\\CalcDllPath"); /// 注册表键值位置 std::string m_key; m_key =

大猫清风技术专栏 1397

innovus:sroute 双层follow pin的做法

根据std cellpower pin的层次可以分成两种情况。

m0_61544122的博客 2731

读写注册表、读写文件windows api接口

在Windows操作系统中,对注册表进行读写操作和对文件进行读写操作涉及不同的API接口。这些API接口是Windows API的一部分,通常在C或C++语言中使用。

chenhao0568的专栏 909

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

利用Windows API函数和注册表获取系统信息

利用Windows API函数和注册表获取系统信息 作者: 评价: 上站日期: 2004-04-18 内容说明: 来源: 在开发应用程序时,增加一项显示计算机系统信息的功能,例如已安装的软盘、硬盘、光驱、网络驱动器,硬盘的容量和剩余空间,显示器分辨率、键盘类型、鼠标的键数,内存大小、CPU类型,Windows的版本号、产品

tangkuai的专栏 1504

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Windows关于操作注册表的API介绍

注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: RegCloseKey RegConnectRegistry  RegCreateKey  RegCreateKeyEx  RegDeleteK

846

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VB 通过API访问 Windows 注册表

你希望你的程序能访问 Windows 注册表吗?当然,能访问庞大的 Windows 注册表是每个程序设计者都希望的事情,那么我就告诉你如何通过API函数访问 Windows 注册表吧。请先看看下面的 Visual Basic 程序:   根键常数  Const HKEY_CLASSES_ROOT = -2147483648#  Const HKEY_CURRENT_USER = -2147483

PZHan的专栏 1209

用Windows API操作注册表

#include #include int main() { LPCTSTR lpKeyStr = TEXT("SYSTEM\\CurrentControlSet\\Enum\\USB\\Vid_2006&Pid_5014"); TCHAR szName[256] = {0}; HKEY hKey = NULL; LONG lRet = 0; lRet = R

山不在高,有金则名 986

BetterClearTypeTuner开发者指南:从注册表操作到Windows API调用

BetterClearTypeTuner是一款专为Windows 10系统设计的ClearType字体平滑配置工具,它提供了比系统默认设置更强大、更灵活的字体渲染调整功能。本指南将深入探讨该工具的核心实现原理,从注册表操作到Windows API调用,帮助开发者全面理解其工作机制。 ## 注册表操作:配置存储的核心方式 在Windows系统中,许多系统配置都存储在注册表中,BetterClea

gitblog_00675的博客 308

Windows API:注册表

1·RegClose()    原形:LONG RegCloseKey(    HKEY hKey  // 释放已经打开的注册表句柄       );    返回值:不成功返回非0,成功返回ERROR_SUCCESS    解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果。关闭一个键后,句柄变为非法,以使其不可再次被使用。为系统

zhaohaiyang93的博客 510
上一篇: windows API 创建系统托盘图标
下一篇: vc添加自定义资源,并创建显示flash控件
hhgo
博客等级 码龄15年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值