防止Pocket PC设备在关闭电源时关闭应用程序

时间:2008-11-21 18:02:57

标签: c# pocketpc

按下电源按钮后,如何防止掌上电脑设备从我的应用程序中关闭?我正在使用C#。

2 个答案:

答案 0 :(得分:1)

您可以使用Microsoft.WindowsCE.Form.MessageWindows类拦截Power Button事件。此解决方案不可移植,因为硬件密钥在不同的机器中会有所不同。

我建议您不要完全禁用掉电。在另一个问题here中查看我的答案。您还可以使用openetcf轻松创建断电事件处理程序并注册唤醒事件。您应该根据您要实现的目标实现应用程序逻辑,例如每隔一分钟唤醒一次以运行一个进程。

答案 1 :(得分:0)

您可以尝试更改设备“BLK1:”的电源要求,这是黑光设备。请注意,在所有设备和操作系统版本或特定于供应商的扩展中,行为可能不同。

为此,您可以编写如下内容:

    [DllImport("coredll")]
    private extern static IntPtr SetPowerRequirement(string pvDevice, int deviceState, 
                int deviceFlags, IntPtr pvSystemState, int stateFlags);

    [DllImport("coredll")]
    private extern static int ReleasePowerRequirement(IntPtr handle);

并以这种方式称呼它:

    IntPtr handle = SetPowerRequirement("BLK1:", 0 /* D0, Full On */, 1, IntPtr.Zero, 0);
    // Do something that requires the device to stay on ...
    ReleasePowerRequirement(handle);

但这通常不是一个好习惯,让长时间打开背光的设备可能会大大降低其自主权。