0

Windown Mobile 6 では、Settings\System\Power\Misc の下に「Disable Power Switch」があり、ポップアップ メニューを取り除くためにプログラムで確認する必要があります。レジストリを比較すると、「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"もちろん正しいものではありません。

このドライバーで設定をリロードするイベント名は何ですか?

4

1 に答える 1

0

当社の WM6 デバイスには、このDisable Power Switchがありません。

これがデバイス メーカー (Motorola、Datalogic など) によって追加されたものである場合は、ドライバーの入手方法と使用方法についてメーカーに問い合わせる必要があります。

于 2013-02-16T16:05:53.837 に答える