LSTATUS RegSetValueExA(
[in] HKEY hKey, // 打开注册表项的句柄
[in, optional] LPCSTR lpValueName, // 要设置的值的名称
DWORD Reserved, // 保留,必须为 0
[in] DWORD dwType, // 值类型
[in] const BYTE *lpData, // 要存储的数据
[in] DWORD cbData // 数据大小
);
// 打开注册表
static HKEY OpenRegEditT(PCWSTR pwsRegPath){
HKEY hKey; // 用于接收句柄信息
LSTATUS RegResult = RegOpenKeyEx(
HKEY_USERS, // 预定义值的句柄
pwsRegPath, // 注册表项的路径
0, // 打开密钥时应用的选项
KEY_ALL_ACCESS, // 访问权限
&hKey // 打开键的句柄,接收返回信息
);
if (RegResult != ERROR_SUCCESS) {
std::cout << RegResult;
return FALSE;
}
return hKey;
}
// 设置注册表项的键值
static BOOL SetRegValueT(HKEY hKey){
CHAR ctmValue[] = "6/6/2050";
LSTATUS SetResult = RegSetValueExA(
hKey,
"IDate", // 要设置的值的名称
0, // 此参数是保留的,必须为零。
REG_SZ, // 值类型
(BYTE*)&ctmValue,
sizeof(ctmValue)
);
if (SetResult != ERROR_SUCCESS) {
std::cout << SetResult;
return FALSE;
}
}
intmain(){
PCWSTR RegPath = L"换成自己的\Software\Typora"; // 注册表路径
HKEY RegKey = OpenRegEditT(RegPath);
SetRegValueT(RegKey);
RegCloseKey(RegKey); // 用完后关闭注册表项的句柄
}
原文始发于微信公众号(走在网安路上的哥布林):Win32 API · 注册表操作(修改键值)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论