Я написал три программы, которые изменяют реестр в Windows Mobile, чтобы установить и удалить плагин todayscreen для целей отладки. Некоторое время они прекрасно работали, но один за другим неожиданно давали исключение «UnauthorizedAccessException».
См. Код для двух программ ниже (обратите внимание, что следующий код просто находится непосредственно в Main, поэтому он запускается, а затем программа завершается) ...
RegistryInit.exe:
RegistryKey CustomItem = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Today\Items\TodayLauncher");
CustomItem.SetValue("Type", 4, RegistryValueKind.DWord);
CustomItem.SetValue("Enabled", 1, RegistryValueKind.DWord);
CustomItem.SetValue("Options", 1, RegistryValueKind.DWord);
CustomItem.SetValue("DLL", @"\Program Files\TodayLauncher\TodayLauncher.dll", RegistryValueKind.String);
CustomItem.SetValue("Config", @"\Program Files\TodayLauncher\Settings.cfg", RegistryValueKind.String);
CustomItem.SetValue("Selectability", 1, RegistryValueKind.DWord);
SendMessage((IntPtr)HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0);
RegistryClear:
Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(@"Software\Microsoft\Today\Items\TodayLauncher");
SendMessage((IntPtr)HWND_BROADCAST, WM_WININICHANGE, 0xF2, 0);
Третья программа была программой конфигурации, которая имела опции для добавления и удаления ключей реестра, используя точные копии кода выше, но она никогда не работала. Некоторое время он мог запускать код для «RegistryInit», но это продолжалось недолго. Теперь оригинальная программа «RegistryClear» не работает, предоставляя то же исключение UnauthorizedAccessException. Я нахожу очень странным, что эти программы работали некоторое время, а затем внезапно перестали работать.
Есть идеи?