过氏分享 http://blog.sciencenet.cn/u/xirongguo

博文

C++操作注册表

已有 4280 次阅读 2010-7-30 10:47 |个人分类:系统工程|系统分类:科研笔记| 编程, 注册表

今天终于把安装打包中的最后一步搞定了哈,写了个小程序实现注册表中环境变量的修改和创建,主要有以下几个关键步骤:

1.引入必要的头文件及库文件

#include<Windows.h>

#pragma comment( lib, "advapi32.lib" )

2. 得到要操作的注册表键的句柄

HKEY hk;
 LONG flag = RegOpenKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, KEY_ALL_ACCESS, &hk);

3.读取相应项的值

RegQueryValueEx(hk, keyName, 0,  &type, reinterpret_cast<LPBYTE>(szResult), &size);

需要注意szResult必须为WCHAR类型数据,才能保证数据传输的正确性

4.修改和创建相应的项

RegSetValueEx(hk, newKey, 0, type, reinterpret_cast<LPBYTE>(path), MAX_LOADSTRING);

RegSetValueEx(hk, keyName, 0, type, reinterpret_cast<LPBYTE>(szResult), MAX_LOADSTRING);

注意最后的字符数一定要足够大,不然会写不全

在实现过程中,关于字符的转换花费了很大的精力,因此总结如下:

1.要传递字符数组要用WCHAR类型

2.键值最好用TCHAR类型

3.数值变量最好用DWORD类型

源码

https://blog.sciencenet.cn/blog-427394-348471.html

上一篇:DLL开发指南
下一篇:Java布局
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 13:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部