0

我正在尝试使用在 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();
4

0 回答 0