我的系统要求应用程序始终运行。
我已将 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts] 中的所有注册表设置设置为 0(我被告知应该禁用超时)。
系统仍处于挂起状态,我们在 Windows CE 6.0 R3 上以完全电源管理模式运行。
最佳答案
就像 AAT 的答案一样,您必须触发重新加载事件。工作实现如下:
private static void DoAutoResetEvent()
{
string eventString = "PowerManager/ReloadActivityTimeouts";
IntPtr newHandle = CreateEvent(IntPtr.Zero, false, false, eventString);
EventModify(newHandle, (int)EventFlags.EVENT_SET);
CloseHandle(newHandle);
}
private enum EventFlags
{
EVENT_PULSE = 1,
EVENT_RESET = 2,
EVENT_SET = 3
}
[DllImport("coredll.dll", SetLastError = true)]
private static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);
[DllImport("coredll")]
static extern bool EventModify(IntPtr hEvent, int func);
[DllImport("coredll.dll", SetLastError = true)]
private static extern bool CloseHandle(IntPtr hObject);
关于c# - 在 Window CE 中禁用挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826606/