使用默认字符串值创建新的Registery Key

时间:2016-11-01 22:44:17

标签: c++ visual-c++ registry

我最终要做的是添加一个全新的子键,其名称为" XtraFileLogging"有一些默认值,目前它"没有!!!",或者我想从名为" XtraFileLogging"的子项中提取值。

为什么在尝试添加一个全新的子项时调用SetKeyValue后我必须调用SetValue?

以下代码有效但看起来我正在使用一个额外的步骤来调用SetValue,看看SetKeyValue如何执行以下https://msdn.microsoft.com/en-us/library/e2ey539x.aspx

if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad ){

            if let currentPopoverpresentioncontroller = alertController.popoverPresentationController{
                currentPopoverpresentioncontroller.barButtonItem = sender as! UIBarButtonItem
                currentPopoverpresentioncontroller.permittedArrowDirections = UIPopoverArrowDirection.down;
                self.present(alertController, animated: true, completion: nil)
            }
        }else{
            self.present(alertController, animated: true, completion: nil)
        }

为什么当我尝试以下任何一个SetKeyValue语句时,如果没有额外调用SetValue,那么键不会出现?

CRegKey oRegKey;
bool setKeyWorked = false;
if (oRegKey.Open(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\EXTRA\\PROG2\\CONFIG")) == ERROR_SUCCESS)
{
    LPCTSTR keyName = _T("XtraFileLogging");
    LPCTSTR keysValue = _T("NOTHING!!!");

    if (oRegKey.SetKeyValue(keyName, keysValue) == ERROR_SUCCESS)
    {
        setKeyWorked = true;
        if (oRegKey.SetValue(keysValue, keyName) == ERROR_SUCCESS)
        {
            setKeyWorked = true;
        }
        else
        {
            setKeyWorked = false;
        }
    }
}
oRegKey.Close();

或者

if (oRegKey.SetKeyValue(keyName, keysValue) == ERROR_SUCCESS)
{
    setKeyWorked = true;
}

我甚至连接到进程并调试它,每次我都能看到setKeyWorked等于true。不幸的是,在没有额外调用SetValue之后,密钥永远不会被创建,我使用regedit进行验证。

0 个答案:

没有答案