【发布时间】:2016-12-30 18:42:32
【问题描述】:
我想从注册表中读取
中的所有值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
我正在尝试使用以下代码来做到这一点:
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", false);
string[] values = key.GetValueNames();
但我的值字符串总是空的。 有趣的是,如果我将代码更改为
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion", false);
string[] values = key.GetValueNames();
我在 CurrentVersion 中获得了正确数量的 ValueName。为什么它在 \Run 中不起作用? 如果我从 LocalMachine 更改为 CurrentUser,则 \Run 路径也可以使用。
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", false);
string[] values = key.GetValueNames();
谁能告诉我为什么我的第一个 CodeExample 不起作用?谢谢!
【问题讨论】:
-
无法重现。你的第一个例子对我来说很好。您是否在独立的测试程序中对其进行了测试?也许这是你真实代码中的一些奇怪的情况......
-
就这么做了。又是同样的问题。不过谢谢你的回答。
标签: c# registry registrykey