我玩 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