禁用电源按钮的事件名称

时间:2013-02-15 08:49:47

标签: registry compact-framework driver windows-ce power-management

Windown Mobile 6上的

,在Settings \ System \ Power \ Misc下,有一个“禁用电源开关”,我必须以编程方式检查以摆脱弹出菜单。通过比较registried我发现,它可以通过'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是什么?

1 个答案:

答案 0 :(得分:0)

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

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