在没有硬复位的情况下禁用存储卡加密

本文关键字:存储卡 加密 情况下 复位 | 更新日期: 2023-09-27 18:14:57

我正在使用windows mobile 6.1,并试图在不重置设备的情况下禁用存储卡上的加密。如果存储卡是加密的,那么我可以进入ctlpnl并取消选中并单击ok,这可以做我想要的并立即解密。如果我通过注册表项更改它,它将不会解密,直到我重新启动设备。我如何在不像在ctpnl中那样重新启动的情况下解密它?

我怎么知道当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);

在没有硬复位的情况下禁用存储卡加密

正如我在评论中提到的,您可以使用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卡上的文件。所以加密的文件在复制之前一直是加密的。

这就是加密的作用。它不是为了方便出行而设计的。

要么你必须找到一种方法来打破加密(即联系供应商删除他们的加密),要么你需要从SD卡上取下你想要的东西并重新格式化。