用 ExitWindowsEx 重新启动智能手机

来源:互联网 发布:少儿英语培训 知乎 编辑:程序博客网 时间:2024/06/10 05:59

  我玩 Windows Mobile 也有两年多的时间了。但是大多数时间还是玩得多,自己动手少。最近入手一个 HTC Tornado(Dopod 577w),突然想到要自己做一个方便重新启动的程序,这样可以不用再关机、开机地折腾。

  查了下 Windows Mobile Version 5.0 SDK,发现了一个新增的函数:ExitWindowsEx。要说这个函数对于 Windows Application 开发人员来说也不算陌生。但是对于 Windows Mobile 却是新的。看一下在 C# 中的声明。

        [DllImport("Aygshell.dll")]
        static extern bool ExitWindowsEx(uint uFlags, int dwReserved);

  其中 uFlags 的值对于 Smartphone 版本来说可以是 EWX_POWEROFF 或者 EWX_REBOOT。可以这样定义:

        private const uint EWX_REBOOT = 2;
        private const uint EWX_POWEROFF = 8;

  调用这个方法就更简单了:

        ExitWindowsEx(EWX_REBOOT, 0);  // 重新启动设备

  很容易吧。我为 Tornado 专门做了一个小程序,也适用于其他 QVGA 分辨率的 Windows Mobile 5 Smartphone(由于时间有限,而且用的是 .NET CF 1.0,所以没有写根据设备分辨率自动调整画面的代码)。

  这个小玩具可以在下列地址找到:http://forum.xda-developers.com/viewtopic.php?t=43553