2008-11-21 5 views

Répondre

0

Vous pouvez essayer de modifier la consommation d'énergie de l'appareil "BLK1:", qui est le périphérique Blacklight. Sachez que le comportement peut ne pas être le même sur tous les périphériques et sur la version du système d'exploitation ou des extensions spécifiques au fournisseur.

Pour ce faire, vous pouvez écrire quelque chose comme:

[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); 

et appelez ainsi:

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

Mais ce qui est généralement une bonne pratique, en laissant un appareil avec le rétro-éclairage pendant de longues périodes pourrait réduire considérablement son autonomie.

1

Vous pouvez utiliser la classe Microsoft.WindowsCE.Form.MessageWindows pour intercepter l'événement du bouton d'alimentation. Cette solution ne sera pas portable, car la clé matérielle sera différente sur différentes machines.

Je vous recommande toutefois de ne pas désactiver complètement l'alimentation. Jetez un oeil à ma réponse dans une autre question here. Vous pouvez également utiliser openetcf pour créer facilement des gestionnaires d'événements de mise hors tension et enregistrer des événements de réveil. Vous devez implémenter la logique de l'application en fonction de ce que vous essayez d'atteindre, par exemple vous réveiller toutes les minutes pour exécuter un processus.

Questions connexes