使用Visual Studio 2005和C#(CF v2.0)。以下代码删除Windows CE 6.0上的注册表项:
RegistryKey key_test = Registry.LocalMachine.CreateSubKey("Test");
RegistryKey key_users = key_test.CreateSubKey("Users");
key_users.DeleteSubKey("User1"); // Yes, this key does exist!
key_users.Flush();
// Now power down the device; on power up, key is gone
但完全相同的代码无法删除Windows CE 5.0上的密钥。在调用“DeleteSubKey”然后手动检查注册表后,该键似乎已消失。但是当你重新启动设备时......钥匙已经恢复了!
我可以检测到操作系统,因此我尝试了Windows CE 5.0的变体:
key_users.DeleteSubKeyTree("User1"); // DeleteSubKey also fails
key_users.Close();
但这也无法删除密钥。同样,钥匙似乎已经启动,但在重新启动设备后,钥匙又回来了。我已经在try-catch块中封装了上面的代码,没有引发异常,代码运行正常,只是不起作用。有任何想法吗?我是否需要在Windows CE 5.0上做一些我不想做的事情?添加键没有问题,简单的“Flush”添加键。
答案 0 :(得分:1)
似乎您的ce5设备没有永久注册表。你试过创建一把钥匙吗?重启后它仍在那里?