在 Windown Mobile 6 上,在 Settings\System\Power\Misc 下有一个“禁用电源开关”,我必须以编程方式检查以摆脱弹出菜单。通过比较注册我发现,它可以通过“Drivers\BuiltIn\Power\Settings”注册表项设置,将 DisablePwrSwitch 设置为 1。
问题是,仅设置注册表是不够的,您还必须为驱动程序设置事件以强制他重新加载设置(或者您可以重置设备,但这是一个丑陋的解决方案)。
我可以通过以下方式实现它:
private static void DoAutoResetEvent()
{
string eventString = "OMNIBOOK_EVENT_SHUTDOWN";
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);
但我不知道实际的 eventStrign 。"OMNIBOOK_EVENT_SHUTDOWN"
当然不是正确的。
有人知道,这个驱动程序重新加载设置的 eventName 是什么?