,在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是什么?
答案 0 :(得分:0)
我们的WM6设备没有禁用电源开关。
如果这是设备制造商(摩托罗拉,Datalogic等)添加的内容,则需要与他们联系以获取驱动程序以及如何使用它。