Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;将数组写入注册表中的二进制项_C++_Windows_Registry - Fatal编程技术网

C++ C++;将数组写入注册表中的二进制项

C++ C++;将数组写入注册表中的二进制项,c++,windows,registry,C++,Windows,Registry,我需要将数组写入二进制注册表项 数组包含一系列字符 char ArrayUserName[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, Array

我需要将数组写入二进制注册表项

数组包含一系列字符

char ArrayUserName[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));

您还需要检查错误消息是什么,不仅仅是比较错误成功与否,我相信还有更具体的错误代码。

非常接近。。。。非常感谢。但它正在将全部100个名额写入注册表。我只用了8或100。。。