Windows编程(操作注册表)

Windows编程(操作注册表)注册表存储在二进制文件里面,win32API提供了大量的函数操作注册表RegCreateKey创建指定的注册表项RegCreateKeyW(_In_

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Windows编程(操作注册表)

注册表 存储在二进制文件里面, win32 API 提供了大量的函数操作注册表

RegCreateKey 创建指定的注册表项

RegCreateKeyW(
_
In_ HKEY hKey, //打开的当前项的句柄 实际上就是那几个分支
_
In_opt_ LPCWSTR lpSubKey,//打开或者创建的表项的名称
_
Out_ PHKEY phkResult //用来接收创建或者打开表项句柄 regclosekey
);
RegOpenKeyW(
_In_ HKEY hKey, //打开的当前项的句柄 实际上就是那几个分支
_
In_opt_ LPCWSTR lpSubKey,
_Out_ PHKEY phkResult
);

HKEY_CLASSES_ROOT

HKEY_CURRENT_CONFIG

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_USERS

写注册表

RegSetValueW(
_In_ HKEY hKey, //打开的当前项的句柄 实际上就是那几个分支
_In_opt_ LPCWSTR lpSubKey, //打开或者创建的表项的名称
_In_ DWORD dwType, //指示被存储信息的类型 REG_SZ类型
_
In_reads_bytes_opt_(cbData) LPCWSTR lpData,//要存放到注册表里面的数
据
_
In_ DWORD cbData //要存放的字符串数据的大小、 长度
);


RegSetValueExW(
_
In_ HKEY hKey, //打开的当前项的句柄 实际上就是那几个分支
_In_opt_ LPCWSTR lpValueName,//指向一个字符串的指针, 包含了将要设置
值的名称
_
Reserved_ DWORD Reserved,// 保留参数 0
_In_ DWORD dwType,//REG_BINARY
_In_reads_bytes_opt_(cbData) CONST BYTE * lpData,
_
In_ DWORD cbData
);

查询注册表

RegQueryValueW(
_
In_ HKEY hKey,
_In_opt_ LPCWSTR lpSubKey,
_Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY)
LPWSTR lpData,
_Inout_opt_ PLONG lpcbData
);

该api中有三个出参。内容分别是数据、数据类型、数据

创建与写入注册表

    {
	{
		DWORD DWage = 20;
		HKEY  hKey;
		 RegCreateKeyW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Rock\\admin", &hKey);
	
			MessageBox(NULL, L"创建注册表成功", 0);
			int ret = ::RegSetValueEx(hKey, L"age", 0, REG_DWORD, (CONST BYTE*) & DWage, 4);
			if (ret != ERROR_SUCCESS) {
				MessageBox(NULL,L"写注册表失败", 0);


			}
			MessageBox(NULL,L"写注册表成功", 0);
		
		::RegCloseKey(hKey);
	}

}


查询注册表

{
	HKEY hKey;
	DWORD dwAge;
	//创建注册表项  VS2019自带的调试器管理员权限运行  自己的生成是以用户的权限运行
	int ret = ::RegOpenKeyW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Rock\\admin", &hKey);
	if (ret != ERROR_SUCCESS)
	{
		TRACE("##RegOpenKeyW Failed ,ErrorCode = %d,ret = %d", GetLastError(), ret);
		MessageBox(L"打开注册表失败");
		return;
	}

	//写注册表
	DWORD dwType;
	DWORD dwValue;
	ret = ::RegQueryValueEx(hKey, L"age", 0, &dwType, (LPBYTE)&dwAge, &dwValue);
	if (ret != ERROR_SUCCESS)
	{
		TRACE("##RegQueryValueEx Failed ,ErrorCode = %d,ret = %d", GetLastError(), ret);
		MessageBox(L"读注册表失败");
		return;
	}

	TRACE("###dwType = %d,dwValue = %d ,dwAge = %d", dwType, dwValue, dwAge);
	::RegCloseKey(hKey);
	
}

实际上除此外还有更底层的API能操作注册表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119853.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • scrollTop和scrollHeight属性「建议收藏」

    scrollTop和scrollHeight属性「建议收藏」———————————————————————检测滚动条是否滚动到底部:

    2022年7月24日
    8
  • IT需求分析_中国it技术牛人

    IT需求分析_中国it技术牛人  刚刚走过了非比寻常的2006,IT业将迎来一个怎样的2007?尤其是从采购角度来看,2007年有哪些特点和趋势?又有哪些因素将左右2007年的市场需求?  预测2007年的IT市场需求和采购趋势,则一定要先看整体的经济增长速度。  来自法国国家统计及经济研究所(INSEE)的预测,2007年上半年,美国经济放缓将连带着世界经济发展速度的回落。据INSEE的统计,2006年,中国工业…

    2022年10月4日
    6
  • 解决定时器关闭不掉的问题,clearInterval无效

    解决定时器关闭不掉的问题,clearInterval无效1.环境问题,this.interVal是我定义的定时器如直接写clearInterval(this.interVal);不好用,需要换成window.clearInterval(this.interVal);2.关闭指令执行的定时器源头问题,如开启了多个定时器,再去清除定时器是无效的,因为无法定位到想清除的定时器上。解决办法,将定时器归一每次开启定时器时,判断一下定时器是否存在,这样万无一失。开启:if(!this.interVal){this.interVal=

    2025年8月14日
    4
  • GHO文件转iso文件能启动安装

    GHO文件转iso文件能启动安装言:目前网上流传的gho转iso教程都是用ultraiso替换gho文件的方法,但是这种方法经过实际使用存在两个缺陷,1.只适用XP,超过800M的时候替换会提示升级DVD格式,但是升级之后会导致不能启动,不升级无法替换,2.不能有效的控制启动盘的来源,只能找别人做好的进行替换鉴于以上两点,有必要重新找个方法准备工具1.IT天空的PE制作工具下载地址2.win7的gho文件下载地址:3.winISO下载地址:http://lt2.mqego.com/soft1/winiso

    2022年7月13日
    25
  • STM32 SPI详解[通俗易懂]

    STM32 SPI详解[通俗易懂]本文的程序是主控室STM32F107各种宏定义和文件会在末尾说明1、SPI简介SPI,是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,

    2022年6月18日
    39
  • 测试用例设计常用方法有哪些_软件测试用例包括什么

    测试用例设计常用方法有哪些_软件测试用例包括什么目录一、测试用例二、黑盒测试2.1、等价类划分法2.1.1、定义2.1.2、等价类划分分类2.1.3、等价类划分原则2.2.4、等价类方法设计测试用例步骤2.2、边界值方法2.2.1、边界值的概念2.2.2、边界值选择遵循的原则2.2.3、边界值方法设计测试用例2.3、判定表方法2.3.1、判定表结构2.3.2、判定表设计测试用例2.4、因果图方法2.4.1、因果图法设计测试用例一、测试用例测试用例: 将要进行的测试工

    2022年10月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号