我正在尝试阅读此注册表:
HKEY_CLASSES_ROOT \ MYXMLfile \壳牌\打开\命令
来自C#,使用此代码:
Registry.ClassesRoot.GetValue(@"MYXMLfile\Shell\Open\Command", "not found")
但它总是返回:
未找到
我错过了什么?
该应用程序已作为管理员运行。
更新
我也试过打开钥匙:
const string keyName = @"MYXMLfile\Shell\Open";
using (var key = Registry.ClassesRoot.OpenSubKey(keyName, false))
{
var val = (string) key.GetValue("Command"); // return null
}
UPDATE2:
我已经尝试设置RegistryView
,因为它是在64位操作系统上运行的32位应用程序,但仍无效。代码:
string keyName = @"MYXMLfile\Shell\Open";
RegistryView regView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (var baseKey = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, regView))
using(var key = baseKey.OpenSubKey(keyName))
{
var v = key.GetValue("Command"); // null
}