我正在尝试使用在 HKLM 中写入/更新一个值TRegistry
,但是当我使用打开注册表时从未成功OpenKey()
(它总是返回 false)。
我的应用程序是 32 位的。我在 C++Builder 10.3 中编写代码。我的操作系统是 Windows 10。
这是我的代码:
BOOL bIsWow64 = FALSE;
BOOL result=FALSE;
IsWow64Process(GetCurrentProcess(), &bIsWow64);
long flags = KEY_WRITE;
if (bIsWow64) flags |= KEY_WOW64_64KEY;
TRegistry *sfReg = new TRegistry(flags);
sfReg->RootKey = HKEY_LOCAL_MACHINE;
UnicodeString mykey="software\\MyName\\MyAppName\\";
sfReg->Access=flags;
result=sfReg->OpenKey(mykey,true);
if(result)
{
if(MainForm->usermode==USER_TEACHER)
{
sfReg->WriteString("tPswd",Edit2->Text);
}
else
{
sfReg->WriteString("fPswd",Edit2->Text);
}
}
delete sfReg;
p->CommaText=MainForm->pLang->Strings[LANG_START+134];
MessageDlg(p->Strings[1], mtInformation, TMsgDlgButtons() << mbOK, 0);
Close();