我试图在注册表中覆盖"默认"的现有值。写下面的代码,但它没有更新值。代码也没有给出任何错误。
[HKEY_CLASSES_ROOT \ ugmportalfile \壳牌\打开\命令] @ =" \"%TPR%\ start_manager.bat \""
RegistryKey regKey=Registry.ClassesRoot.OpenSubKey("ugmportalfile\\Shell\\Open\\Command", true);
//Microsoft.Win32.RegistryKey regKey;
regKey = Microsoft.Win32.Registry.ClassesRoot;
regKey.OpenSubKey(@"ugmportalfile\Shell\Open\Command");
regKey.SetValue("Default", @"%TPR%\start_manager.bat");
regKey.Close();
答案 0 :(得分:0)
OpenSubKey
会返回一个RegistryKey对象,您正在尝试修改错误的密钥。
RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot;
RegistryKey subkey = regKey.OpenSubKey(@"ugmportalfile\Shell\Open\Command", true); // Could be also Microsoft.Win32.Registry.ClassesRoot..OpenSubKey(@"ugmportalfile\Shell\Open\Command", true);
subkey.SetValue("Default", @"%TPR%\start_manager.bat");
subkey.Close();
您还可以考虑using
代码块导致IDisposable接口的原因。
修改:https://msdn.microsoft.com/en-us/library/xthy8s8d(v=vs.110).aspx