0

BINARY レジストリ キーに配列を書き込む必要があります。

配列には一連の文字が含まれています...

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]

鍵を開ける成功。

レジストリへの書き込みエラー。

成功の鍵。

私は何が欠けていますか?

ありがとうございました

4

1 に答える 1

2

UCHAR byteRegArray私が見ることができる1つのことは、の代わりにchar、を使用したいということです

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

ERROR_SUCCESS と比較するだけでなく、エラー メッセージが何であるかを確認する必要もあります。より具体的なエラー コードがあると思います。

于 2013-10-03T18:04:43.487 に答える