0

对于将作为 Windows 服务运行的应用程序,
我将设置值存储在 HKLM\Software... 注册表项中。

我有一个访问我的注册表值的库。

我有一个简单的测试控制台应用程序,用于验证代码是否有效。

要通过我的测试控制台应用程序进行调试,我必须以管理员身份运行 vs2010。

一切正常:

Console.WriteLine(WindowsRegistry.getTaleoOrgCode("test"));

调用

Microsoft.Win32.RegistryKey hklmLocalMachineRoot =
Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey hklmLocalMachineHbsiTaleoClient =
hklmLocalMachineRoot.OpenSubKey(@"SOFTWARE\Taleo\" + clientName.Trim(), false);
 // read only
if (hklmLocalMachineHbsiTaleoClient != null)

通过调试,很明显 hklmLocalMachineHbsiTaleoClient 不为空。

我有一个使用上述库子例程的应用程序。

我也以管理员身份在 vs2010 中启动该应用程序。

通过调试,很明显 hklmLocalMachineHbsiTaleoClient 为空。

在调试之前,我确保失败的应用程序
具有我的注册表例程库的最新版本。

vs2010 Pro 版本在 Windows 7 下运行。

请帮忙,谢谢。

4

1 回答 1

0

Hans 在他的评论中是正确的,恶魔是注册表虚拟化。

请参阅我的后续问题:

https://stackoverflow.com/questions/4980211/how-do-i-search-all-non-virtual-and-virtual-registries-in-vista-win7-et-cetera

谢谢你。

于 2011-02-12T19:48:06.710 回答