0

Windows Mobile 6.1 を使用しており、デバイスをリセットせずにストレージ カードの暗号化を無効にしようとしています。ストレージ カードが暗号化されている場合は、ctlpnl に移動してチェックを外し、[OK] をクリックすると、必要な処理が実行され、すぐに復号化されます。レジストリ キーで変更すると、デバイスを再起動するまで復号化されません。ctlpnl のように再起動せずに復号化するにはどうすればよいですか?

[OK] ボタンがクリックされたときに何が起こるかを知るにはどうすればよいですか?

これまでのところ、以下のコードを実行してチェックボックスを更新できます。しかし、それはまだストレージカードを解読しません.

ありがとう

[DllImport("coredll.dll")]
public static extern int SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
[DllImport("coredll.dll")]
public static extern bool SendMessageTimeout(IntPtr hWnd, int Msg, int wParam, int lParam, int fuFlags, int uTimeout, out int lpdwResult);
[DllImport("coredll.dll")]
public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

public const int HWND_BROADCAST = 0xffff;
public const int WM_WININICHANGE = 0x1A;
public const int WM_SETTINGCHANGE = 0x1A;
public const int SMTO_NORMAL = 0x0000; 
public const int SMTO_BLOCK = 0x0001;

 SendMessage((IntPtr)HWND_BROADCAST, WM_WININICHANGE, 0, 0);
            SendMessage((IntPtr)HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
            PostMessage((IntPtr)HWND_BROADCAST, WM_WININICHANGE, 0, 5000);
            PostMessage((IntPtr)HWND_BROADCAST, WM_SETTINGCHANGE, 0, 5000);
4

2 に答える 2

1

私のコメントで述べたように、wap プロビジョニングを使用できます: http://msdn.microsoft.com/en-us/library/bb416357.aspx

<wap-provisioningdoc>
    <characteristic type="SecurityPolicy">     <!-- Set encryption policy such that the user cannot change the setting -->
        <parm name="4134" value="0" /> 
    </characteristic>
    <characteristic type="MobileEncryption">   <!-- Turn on encryption -->
        <parm name="Enable" value="1" /> 
    </characteristic>
</wap-provisioningdoc>

変更は、変更後に SD カードに保存されたファイルにのみ適用されます。そのため、暗号化されたファイルは、コピーするまで暗号化されたままになります。

于 2013-05-25T18:21:26.260 に答える