|||
今天终于把安装打包中的最后一步搞定了哈,写了个小程序实现注册表中环境变量的修改和创建,主要有以下几个关键步骤:
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类型
源码Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-20 13:39
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社