2009-05-17 5 views
0

Windows Mobile에서 레지스트리를 수정하여 디버그 목적으로 todayscreen 플러그인을 설치하고 제거하는 세 가지 프로그램을 작성했습니다. 그들은 잠시 동안 훌륭하게 작동했지만 갑자기 "UnauthorizedAccessException"을주었습니다.Windows Mobile 레지스트리 UnauthorizedAccessException

... 아래 (가 실행 한 후 프로그램이 종료되도록 다음 코드는 그냥 홈페이지에 직접 앉아 있습니다) 프로그램의 두 가지에 대한

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); 

세 번째 프로그램을 추가하고 위의 코드의 정확한 복사본을 사용하여 레지스트리 키를 제거 할 수있는 옵션을 가진 구성 프로그램 이었지만, NE ver 매우 효과적이다. 잠시 동안 "RegistryInit"코드를 실행할 수는 있지만 오래 가지 못합니다. 이제 원래의 "RegistryClear"프로그램이 작동하지 않아 동일한 UnauthorizedAccessException이 발생합니다. 나는이 프로그램이 잠시 동안 발견되어 매우 갑자기 이상하다는 것을 알게되고 갑자기 일하는 것을 멈췄다.

아이디어가 있으십니까?

+1

는 좀 더 인터넷 검색했고,이 게시물 ... http://forum.xda-developers.com/showthread.php?t=498869 내가 OpenSubKeys에 "true"로 추가 하지만 발견 문제를 해결하지 못했습니다 – zort15

+0

흠, 분명히 원격 레지스트리 편집기 중 하나를 삭제할 수 없습니다 ... – zort15

답변

0

예를 들어 RegistryKey.Close() (예 : CustomItem.Close())를 호출하지 않았으므로 키가 여전히 열려있어 디스크로 플러시되지 않을 수 있으므로 UnAuthorizedAccessException이 발생합니다.

0

삭제하려는 키 아래에 하위 키가 있으면 "DeleteSubKey"를 "DeleteSubKey"로 변경하면됩니다.

C에서 기본 응용 프로그램으로 써 보았습니까? 동일한 문제가 발생하는지 확인하십시오.