gpt4 book ai didi

C++ 将数组写入注册表中的二进制条目

转载 作者:行者123 更新时间:2023-11-28 03:08:10 24 4
gpt4 key购买 nike

我需要将一个数组写入 BINARY 注册表项。

数组包含一系列字符...

字符数组用户名[100]

加载ZK8ORQ1的值

我需要将该值写入注册表中的二进制值 (REG_BINARY)。

void WriteRegistryValues()
{
DWORD dwDisposition;
FILE *fileb;
fileb = fopen("C:\\logs\\cplog2.txt", "a+");

fprintf(fileb,"Field ID %d: [%s]\n", 2, ArrayUserName);
fprintf(fileb,"Field ID %d: [%s]\n", 3, ArrayPassword);

HKEY hKey;
LPCTSTR sk = TEXT("SOFTWARE\\XXXX\\YYYY\\GINA");
LONG openRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, sk, 0, KEY_ALL_ACCESS , &hKey);


if (openRes==ERROR_SUCCESS) {
fprintf(fileb, "Success opening key.\n");
} else {
fprintf(fileb, "Error opening key.\n");
}

LPCTSTR value = TEXT("Domain");
LONG setRes = RegSetValueEx(hKey, value, 0, REG_BINARY, (CONST BYTE*)ArrayUserName, 100);


if (setRes == ERROR_SUCCESS) {
fprintf(fileb, "Success writing to Registry.\n");
} else {
fprintf(fileb, "Error writing to Registry.\n");
}

LONG closeOut = RegCloseKey(hKey);

if (closeOut == ERROR_SUCCESS) {
fprintf(fileb, "Success closing key.\n");
} else {
fprintf(fileb, "Error closing key.\n");
}

fclose(fileb);

在文本文件中,我看到了用户名和密码的值

作为

字段 ID 2:[zk8orq1]

字段 ID 3:[P@ssword2]

成功开启秘钥。

写入注册表时出错。

成功关闭键。

我错过了什么?

谢谢

最佳答案

我能看到的一件事是您想使用 UCHAR byteRegArray,而不是 char

 UCHAR byteRegArray[] = {0x01, 0x00....... };
RegSetValueEx(hKey, "sflaksdfl;asjdf", 0, REG_BINARY, (BYTE *)byteRegArray, sizeof(byteRegArray));

你还需要检查错误信息是什么,而不仅仅是比较ERROR_SUCCESS,我相信还有更具体的ERROR代码。

关于C++ 将数组写入注册表中的二进制条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19165978/

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