gpt4 book ai didi

c++ - RegSetValueEx() 不改变键值

转载 作者:行者123 更新时间:2023-11-30 04:22:32 25 4
gpt4 key购买 nike

在我的应用程序中,当我第一次使用 RegSetValueEx() 设置键值时它有效,但是当我尝试使用相同的函数更改值时它不起作用,值保持不变。我做错了什么?

代码如下:

SetSZValue( "MyAppData", "versionInfo", "1.0.0" );


HKEY CreateKey( string regkey )
{
HKEY hKey ;
DWORD disValue ;

char msg[512] ;

string _key = "HKEY_LOCAL_MACHINE\\" ;
_key += regkey ;

LONG retValue = RegCreateKeyEx( HKEY_LOCAL_MACHINE, regkey.c_str(), 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &disValue ) ;
if (retValue != ERROR_SUCCESS)
{
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError(), 0, &msg[0], 512, 0 ) ;
MessageBox( 0, &msg[0], "CreateKey", MB_OK | MB_ICONEXCLAMATION );
}

return hKey ;
}



void SetSZValue( string regkey, string keyName, string keyValue )
{
HKEY hKey;
DWORD disValue;

char msg[512];

hKey = CreateKey(regkey);
if (hKey)
{
LONG retValue = RegSetValueEx( hKey, keyName.c_str(), 0, REG_SZ, ( const BYTE* )( keyValue.c_str() ), keyValue.size()+1 );
if ( retValue != ERROR_SUCCESS )
{
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError(), 0, &msg[0], 512, 0 );
MessageBox( 0, &msg[0], "SetSZValue", MB_OK | MB_ICONEXCLAMATION );
}

RegCloseKey ( hKey );
}
}

最佳答案

RegSetValueEx 接受要更改的键内的值的名称;不是 key 的名称。改为提供值名称;键名来自 HKEY 本身。

关于c++ - RegSetValueEx() 不改变键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13770498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com