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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3DES加密算法原理

    3DES加密算法原理

    2021年4月9日
    177
  • css设置横向滚动条样式_js设置滚动条样式

    css设置横向滚动条样式_js设置滚动条样式接上一篇,有的时候在项目里面会使用到滚动条但是浏览器默认的滚动条的样式不怎么好看这个时候需要进行一些处理一般用到两种1:隐藏滚动条,但是可以支持滚动的方法::-webkit-scrollbar{display:none}示例:https://www.jianshu.com/p/9efdb18d92a62:自定义滚动条样式.healthName::-we…

    2025年7月21日
    3
  • 闪闪发光的文字特效代码[通俗易懂]

    闪闪发光的文字特效代码[通俗易懂]<bid=”nr”>我是一排闪闪发光的文字,看起来是不是特别的绚烂!<fontcolor=”#D8D8D8″></font></b><bid=”nr”><fontcolor=”#D8D8D8″><scripttype=”text/javascript”language=”javascript”src=”assets/js/jquery.min.js”></script><sc..

    2022年10月17日
    1
  • 多因子权重算法_SEO权重优化软件

    多因子权重算法_SEO权重优化软件from:https://www.ricequant.com/community/topic/4559/在多因子量化投资体系中,具有稳定的预期收益,可解释的经济驱动理论,与其他因子的低相关性是选择alpha因子的关键指标。本篇文章中,我们以此为因子选取标准,简单地构建了自己的因子库,总共包括八个大类因子,每个大类因子中包含四到五个子类细分因子。为了比较不同的权重优化方法的优劣,本文首先采取不同的方…

    2022年10月4日
    3
  • STM32F4(用SysTick实现Delay函数)[通俗易懂]

    STM32F4(用SysTick实现Delay函数)[通俗易懂]STM32F4(用SysTick实现Delay函数)1,开发环境     1,适用芯片:STM32F4全部芯片    2,固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0     3,IDE:MDK5172,驱动源码     Delay.h文件/**************************************

    2022年5月7日
    99
  • (20211206更新)ubuntu18.04 安装Python3.8.3、jupyter notebook远程连接配置、虚拟环境搭建。及torch、tensorflow成功下载[通俗易懂]

    (20211206更新)ubuntu18.04 安装Python3.8.3、jupyter notebook远程连接配置、虚拟环境搭建。及torch、tensorflow成功下载[通俗易懂]最近搞了一个低配云服务器,就瞎整。多次踩坑后,进行记录问题之前有试过删除软链接、进行替换#删除软连接sudorm-rf/usr/bin/python3sudorm-rf/usr/bin/pip3#新建软连接sudoln-s/usr/local/python3/bin/python3.8/usr/bin/python3sudoln-s/usr/local/python3/bin/pip3.8/usr/bin/pip3但是吧,后续的pipinstall会出

    2022年6月23日
    38

发表回复

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

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