我正在使用Windows Mobile 6.1并尝试在不重置设备的情况下禁用存储卡上的加密。如果存储卡是加密的,我可以进入ctlpnl并取消选中它,然后单击确定,然后执行我想要的操作并解密。如果我通过注册表项更改它,它将不会解密,直到我重新启动设备。如何解密它而不重新启动就像在ctlpnl中那样?
如何判断单击“确定”按钮时会发生什么?
到目前为止,我可以通过执行以下代码来更新复选框。但它仍然没有解密存储卡。
谢谢
[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);
答案 0 :(得分: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卡上的文件。因此加密文件在您复制之前一直保持加密状态。
答案 1 :(得分:0)
这就是加密的目的。它的设计并不容易四处走动。
您必须找到一种方法来破解加密(即联系供应商以了解如何删除加密),或者您需要从SD卡中取出您想要的内容并重新格式化。