Jas*_*n94 1 c# windows registry
香港专业教育学院在HKEY_LOCAL_MACHINE\Software\MyAppName(使用regedit(ive rebootet))中创建了一个密钥,但是当我尝试列出它们时,所有"MyAppName"都没有显示...... :(任何线索?
rkey = Registry.LocalMachine.OpenSubKey("Software");
foreach (string subkey in rkey.GetSubKeyNames())
{
WriteToLogFile("subkey: " + subkey);
}
Run Code Online (Sandbox Code Playgroud)
我将应用我的通灵调试功能,并猜测你有(a)64位操作系统,以及(b)Visual Studio 2010.
默认情况下,在VS2010中创建新的可执行项目时,它会设置要为x86平台构建的项目选项.(Visual Studio的早期版本针对"任何平台",它将在32位操作系统上JIT到x86代码,在64位操作系统上使用x64代码.但这会引起其他麻烦,因此他们更改了 VS2010中的默认值.)
在64位操作系统上,32位应用程序拥有自己的HKLM\Software虚拟副本.MS出于兼容性原因这样做,因此32位应用程序不会踩到64位应用程序的设置.因此,当您的32位应用程序寻找HKLM\Software时,它实际上正在获得HKLM\Wow6432Node\Software.
四个简单的解决方案:
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |