问候,
从您的应用程序中这样做可能不是一个好主意 - 设备有一个电源按钮是有原因的,关闭应用程序可能会导致用户混乱和沮丧。
如果您必须这样做,并且您正在使用Windows Mobile 5.0或更高版本,则可以像这样P/Invoke ExitWindowsEx:
[Flags]
public enum ExitFlags
{
Reboot = 0x02,
PowerOff = 0x08
}
[DllImport("coredll")]
public static extern int ExitWindowsEx(ExitFlags flags, int reserved);
...
ExitWindowsEx(ExitFlags.PowerOff, 0);
OpenNetCF.WindowsCE.PowerManagement
类提供了挂起和软重置的方法。它甚至还有一个硬件重置的方法!
我尝试了这两段代码,成功地关闭了手持设备
Process.Start("cmd", "/c shutdown.exe")
<br/>
Me.Close()
我有不同的API方式来重新启动和关闭电源,但是它存在一个问题,不确定是什么。
私有枚举SetSystemPowerStateAction
{
POWER_STATE_ON = 0x00010000,
POWER_STATE_OFF = 0x00020000,
POWER_STATE_SUSPEND = 0x00200000,
POWER_FORCE = 4096,
POWER_STATE_RESET = 0x00800000
}
[DllImport("coredll.dll", SetLastError = true)]
static extern int SetSystemPowerState(string psState, int StateFlags, int Options);
// 关闭电源
// 虽然我不确定为什么会重新启动??
SetSystemPowerState(null, (int)SetSystemPowerStateAction.POWER_STATE_OFF, (int)SetSystemPowerStateAction.POWER_FORCE);
// 重新启动
SetSystemPowerState(null, (int)SetSystemPowerStateAction.POWER_STATE_RESET, (int)SetSystemPowerStateAction.POWER_FORCE);