C# 防止Pocket PC设备在断电时关闭应用程序

C# 防止Pocket PC设备在断电时关闭应用程序,c#,pocketpc,C#,Pocketpc,当按下电源按钮时,如何防止pocket PC设备从我的应用程序关闭?我使用的是C#。您可以尝试更改设备“BLK1:”的电源要求,这是黑光设备。请注意,并非所有设备和操作系统版本或特定于供应商的扩展上的行为都相同 为此,您可以编写如下内容: [DllImport("coredll")] private extern static IntPtr SetPowerRequirement(string pvDevice, int deviceState,

当按下电源按钮时,如何防止pocket PC设备从我的应用程序关闭?我使用的是C#。

您可以尝试更改设备“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);

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

您可以尝试更改设备“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);

但这通常不是一个好的做法,长时间打开背光可能会大大降低设备的自主性。

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


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

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

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