11
votes

C # - Modifier un événement sur PowerStatus Change

J'ai créé une application qui doit être dans un état sûr et je souhaite donc suivre l'état de l'ordinateur de l'ordinateur en arrière-plan. Si le niveau de la batterie (le cas échéant) est faible ou critique, je ne permettrais pas à l'utilisateur de continuer à utiliser l'application et de fumer correctement.

Tout d'abord, je suis étonné qu'aucun événement de ce type n'existe pour détecter le changement. Vous devez toujours vérifier manuellement le powerstatus manuellement.

Donc, j'ai créé une enveloppe autour de lui, quelque chose comme ceci: xxx

mais pas Travailler car PowerStatus n'a pas de constructeur public et je ne peux pas stocker le résultat de l'état précédent ...

Comment puis-je gérer cela?

Merci ...


0 commentaires

4 Réponses :


7
votes

Vous devez appeler systeminformation.powerstatus au lieu de New PowerStatus () Si vous essayez d'obtenir le statut de puissance actuel.


2 commentaires

Ce qui vous fait référence, pas très utile pour stocker et comparer dans la prochaine tick.


@HENK: C'est ce que je reçois de répondre à la partie technique de la question plutôt que de la manière de résoudre le problème réel;) Bien qu'il semble que @ W69RDY a fourni la réponse optimale, l'OP devrait mettre en cache les valeurs renvoyées par le PowerStatus classe plutôt que l'instance elle-même. J'avais supposé (incorrectement) que powerstatus était une structure simple plutôt qu'une classe réelle.



1
votes

Vous êtes un rigueur, les informations de la MSDN ne sont pas utiles du tout, vous trouverez ce dont vous avez besoin pour votre tâche ici:

http://www.blackwasp.co.uk/powerstatus.aspx < / p>

J'espère que cela aide!


0 commentaires

14
votes

En réalité, il y a, c'est appelé le SystemEvents.Powermodermodéchanged

Si le PowerModechangeDeventargs a un de StatusChanger , cela signifie que le statut de La batterie a changé. xxx

Ce didacticiel peut également être utile:

http://netcode.ru/dotnet/?lang=&katid=30&skatid=277&artid=7643


1 commentaires

C'est pourquoi je cherche! Merci :)



2
votes

Voici un code qui vous retournera toutes les valeurs de PowerStatus xxx

espère que cela aide.


0 commentaires