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"
もちろん正しいものではありません。
このドライバーで設定をリロードするイベント名は何ですか?