我最终要做的是添加一个全新的子键,其名称为" 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进行验证。