0

在 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 是什么?

4

1 回答 1

0

我们的 WM6 设备没有此禁用电源开关

如果这是设备制造商(摩托罗拉、Datalogic 等)添加的内容,您需要联系他们以获取驱动程序以及如何使用它。

于 2013-02-16T16:05:53.837 回答