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"目录是生成目录 转帖请保留此文件 作者:毕飞

5G时代必知:LDPC与Polar码实战解析(附MATLAB仿真代码)

本文深入解析5G时代核心信道编码技术LDPC码与Polar码的原理差异及性能表现,通过MATLAB仿真代码展示其在实际通信系统中的应用。LDPC码适用于大数据块高速传输,而Polar码在小数据块低时延场景表现优异,帮助开发者优化5G系统设计。

sugar的博客 642

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

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

qq_31716541的博客 1160

数据库和BI工程师面试题

 一.数据库 1.Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? 2.Oracle数据库,有哪几类索引,分别有什么特点? 3.Union与Union All的区别? 4.对游标的理解?游标的分类?使用方法? 5.如何查找和删除表中的重复数据?给出方法或SQL。 6.不借助第三方工具,怎么查看SQL的执行计划? 7.创建索引有哪些需要注意的要点?

web_go_run的专栏 1万+

使用Windows API操作注册表

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

anhkgg的专栏 9137

从VoLTE高清通话到5G新通话:手把手带你用Wireshark抓包分析QCI 1, 2, 5, 9的建立与切换过程

本文详细解析了从VoLTE高清通话到5G新通话的QCI(QoS Class Identifier)建立与切换过程,通过Wireshark抓包实战演示如何分析QCI 1、2、5、9的承载机制。内容涵盖QCI基础概念、实验环境搭建、VoLTE通话建立过程分析以及5G新通话中的QoS演进,为网络工程师和通信技术爱好者提供实用的技术指南和优化建议。

weixin_30788619的博客 342

量化交易——量化选股(多因子选股)

就是用过去的股票的收益率对多因子进行回归,得到一个回归方程,然后再把最新的因子值代入回归方程得到一个对未来股票收益的预判,然后再以此为依据进行选股。的方法是建立在市场无效或弱有效的前提之下,随着使用多因子选股模型的投资者数量的不断增加,有的因子会逐渐失效,而。就是根据各个因子的大小对股票进行打分,然后按照一定的权重加权得到一个总分,根据总分再对股票进行筛选。另一方面,一些因子可能在过去的市场环境下比较有效,而随着市场风格的改变,这些。波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的。

jiucaixiuyang的博客 1787

windows注册表API使用

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

1151

一文读懂,WMS仓库管理系统模块功能

对于仓库管理人员来说,仓储管理是一件需要十分负责、又精细化的工作。

深蓝易网的博客 5219

Windows操作注册表API简单例子

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

走向辉煌 3707

《MySQL 入门教程》第 03 篇 管理数据库

本篇主要介绍 MySQL 数据库的创建、查看、选择和删除操作,包括使用 mysql 命令行和 MySQL Workbench 图形工具两种方式。

Tony.Dong的专栏 3525

ADS1115 0-10V高精度ADC模块原理图设计,已量产

在水质监测、智能气象站、环境感知等领域,0-10V 电压输出的传感器占据了重要地位。这类传感器输出信号稳定、抗干扰能力强,但对数据采集模块的精度、线性度和易用性提出了严苛要求。本文将深度解析一款专为 0-10V 传感器设计的高精度 ADC 模块,从硬件架构、性能指标到工程化实践,全面呈现其设计思路与核心价值。

不脱发的程序猿 276

【原创】注册表的读写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

杰理外挂flash使用教程(四):制作fat32文件系统格式的资源文件

本文档提供了FAT文件系统镜像生成与资源打包的完整指南,包含两种实现方案:推荐的WSL/Ubuntu环境方案和Windows原生方案。详细说明了从创建空白镜像、格式化、资源文件复制到最终打包为设备可用的res.bin文件的完整流程,并对比了FAT32与FAT16的特性差异。文档还包含关键文件说明、使用注意事项和典型应用场景,适用于嵌入式系统开发、固件升级等场景。

qq_42014563的博客 1339

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

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

chenhao0568的专栏 909

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

tangkuai的专栏 1504

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

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

846

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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、付费专栏及课程。

余额充值