Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows mobile 如何以编程方式关闭Windows Mobile设备_Windows Mobile_Compact Framework - Fatal编程技术网

Windows mobile 如何以编程方式关闭Windows Mobile设备

Windows mobile 如何以编程方式关闭Windows Mobile设备,windows-mobile,compact-framework,Windows Mobile,Compact Framework,我想使用Compact framework 2.0、Windows Mobile 5.0 SDK以编程方式关闭Windows Mobile设备 关于,正常的Windows API具有ExitWindowsEx()函数。你可能想看看这个。 然而,看起来确实如此。从我几年前(现在)读到的内容来看,Windows CE实际上并不是设计为关闭的,只是处于暂停的低功耗状态。请记住,它是用于移动/智能手机的,所以它们总是处于开机状态 ExitWindowsEx函数可能对您有用,但是: 它是一个本机函数,而

我想使用Compact framework 2.0、Windows Mobile 5.0 SDK以编程方式关闭Windows Mobile设备

关于,

正常的Windows API具有ExitWindowsEx()函数。你可能想看看这个。 然而,看起来确实如此。

从我几年前(现在)读到的内容来看,Windows CE实际上并不是设计为关闭的,只是处于暂停的低功耗状态。请记住,它是用于移动/智能手机的,所以它们总是处于开机状态

ExitWindowsEx函数可能对您有用,但是:

  • 它是一个本机函数,而不是.Net/Compact Framework
  • OEM必须实现所需的功能才能发挥作用
  • 该功能仅存在于Windows Mobile 5.0或更高版本的操作系统上,这并不意味着它存在于所有Windows CE设备上
仅从工作中的个人角度来看,我们已经为基于Windows CE的操作系统实现了自己的关机和重启功能。我们必须为此编写大量代码,所以我不希望所有操作系统上都存在这种关闭功能


从应用程序中执行此操作可能不是一个好主意-设备有一个电源按钮是有原因的,关闭应用程序可能会导致用户困惑和沮丧

如果必须这样做,并且您使用的是Windows Mobile 5.0或更高版本,则可以按如下方式进行p/Invoke:

[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类具有挂起和软重置的方法。它甚至有一个硬件重置的方法

ExitWindowsEx API需要注意的另一点是,仅Windows Mobile标准(即智能手机)设备支持关机,而Windows Mobile Professional(Pocket PC)设备不支持关机

请参阅on MSDN中EWX_断电标志的特别说明。我已经有好几年没有在Pocket PC上尝试过API了,但我很确定这仍然是最流行的


相反,您可能希望研究使用电源管理API将设备置于较低的电源状态,例如挂起或无人值守模式。通过编程关闭设备,您试图实现什么目的?

我有不同的API重新启动和关闭(关机)电源的方式,尽管它有一个问题,但不确定是什么。

私有枚举集合集集状态操作
{
电源状态开=0x00010000,
电源状态关闭=0x00020000,
电源状态挂起=0x00200000,
功率=4096,
电源状态重置=0x00800000
}

[DllImport(“coredll.dll”,SetLastError=true)]
静态外部int SETSYSTATE(字符串psState、int StateFlags、int选项)

//关闭
//但我不确定它为什么重新启动?
设置系统授权状态(null,(int)设置系统授权状态动作。电源状态(u)关闭,(int)设置系统授权状态动作。电源(u力)

//重新启动

SetSystemEmpowerState(null,(int)SetSystemEmpowerStateAction.POWER_STATE_RESET,(int)SetSystemEmpowerStateAction.POWER_FORCE)

我尝试了这两个代码,成功地关闭了手持设备

Process.Start("cmd", "/c shutdown.exe")
<br/>
Me.Close()
Process.Start(“cmd”,“/c shutdown.exe”)