2009-05-17 12 views
0

Windows Mobileのレジストリを変更して、デバッグ目的でtodayscreenプラグインをインストールおよび削除するプログラムを3つ作成しました。彼らはしばらくの間素晴らしい仕事をしていましたが、突然 "UnauthorizedAccessException"を出してきました。WindowsモバイルレジストリUnauthorizedAccessException

以下のプログラムの2のコードを参照してください(それが実行され、その後、プログラムが終了するので、次のコードは、ちょうど、メインに直接座っていることに注意してください)...

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

第3のプログラムは、上記のコードの正確なコピーを使用して、レジストリキーを追加および削除するためのオプションを持っていた設定プログラムであったが、それはNE verはかなり働いた。しばらくの間、 "RegistryInit"のコードを実行することができましたが、それは長くは続きませんでした。今や元の "RegistryClear"プログラムは動作せず、同じUnauthorizedAccessExceptionを与えます。私は非常に奇妙なことに、これらのプログラムは、しばらくの間見つかったし、突然動作を停止している。

アイデア?

+1

私はOpenSubKeysを「true」に追加しましたが、こと http://forum.xda-developers.com/showthread.php?t=498869 ...私はいくつかのより多くのグーグルなかった、と私はこの記事を見つけました問題を解決していない – zort15

+0

ええと、明らかにリモートレジストリエディタはキーを削除できません... – zort15

答えて

0

例ではRegistryKey.Close()(つまり、CustomItem.Close())をコールしないので、キーがまだ開いていて、ディスクにフラッシュされていない可能性があるため、UnAuthorizedAccessExceptionが表示されます。

0

削除するキーの下にサブキーがあると、「DeleteSubKey」を「DeleteSubKey」に変更することができます。

Cでネイティブアプリケーションとして記述しようとしましたか?あなたが同じ問題を抱えているかどうかを見てください。

関連する問題