gpt4 book ai didi

C++ 无法在注册表中创建新键

转载 作者:可可西里 更新时间:2023-11-01 11:09:25 25 4
gpt4 key购买 nike

我真的需要你的帮助。我什么都试过了,但结果总是一样的,什么都没有。请指教。

这是我的代码

#include <windows.h>
#include <iostream>
#include <windef.h>

using namespace std;

int main (void)
{
HKEY hKey;
LONG regOpenResult;

const char PATH[] = "C:\\Users\\les\\Documents\\visual studio 2010\\Projects\\registryTester\\Debug\\registryTester.exe";

RegCreateKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0,
NULL,REG_OPTION_VOLATILE,
KEY_SET_VALUE,
NULL,
&hKey,
NULL
);

RegSetValueExW(hKey, L"regTest", 0, REG_SZ, (BYTE*)PATH, strlen(PATH));

RegCloseKey(hKey);
}

最佳答案

您正在使用 RegSetValueEx 的 unicode 版本,但向它传递了一个 char* 字符串。您应该将 PATH 的声明更改为:

const wchar_t PATH[] = L"C:\\Users\\les\\Documents\\visual studio 2010\\Projects\\registryTester\\Debug\\registryTester.exe";

并使用 wcslen 而不是 strlen 因为它是一个 wchar_t 字符串。由于它以字节(而不是字符)为单位测量并且需要包括空终止符,因此大小参数应为 wcslen(PATH)*2+2

关于C++ 无法在注册表中创建新键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com