因此,我想将注册表项放在目录HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run中,并且我希望将其称为Test,并使其包含“ TestText”,但是此代码在此处放置了一个新项。 HKCU \ Test,程序在注册表项中写入随机的中文字符。有人帮忙吗?
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <string>
#include <time.h>
using namespace std;
int main()
{
HKEY keyExample;
if (RegOpenKey(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\"), &keyExample) != ERROR_SUCCESS)
{
RegCloseKey(keyExample);
return 69;
}
if (RegSetKeyValue(HKEY_CURRENT_USER, TEXT("Test"), 0, REG_SZ, (LPBYTE)"TestText", strlen("TestText")*sizeof(char)) != ERROR_SUCCESS)
{
RegCloseKey(keyExample);
cout << "Unable to set registry value value_name";
}
RegCloseKey(keyExample);
return 0;
}
RegSetKeyValue(HKEY_CURRENT_USER, ...
这是错误。您需要使用keyExample
您在打开所需密钥时获得的密码。像这样:
RegSetKeyValue(keyExample, ...
对于ANSI / Unicode问题,您需要将TEXT()
宏用于实际数据,而不仅仅是其名称:
RegSetKeyValue(keyExample, TEXT("Test"), 0, REG_SZ, TEXT("TestText"), lstrlen(TEXT("TestText"))*sizeof(TCHAR))
通常,忘记与TEXT / TCHAR菜单有关的所有旧的向后兼容的东西,而直接使用长字符串直接调用Windows API函数的W版本,通常会更容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句