begin process at 2010 07 29 15:29:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

PPC :: Divers

 > MONITEUR DE BATTERIE, POCKET PC

MONITEUR DE BATTERIE, POCKET PC


 Information sur la source

Note :
Aucune note
Catégorie :PPC :: Divers Source .NET ( DotNet ) Classé sous :GetSystemPowerStatusEx2, Power Status, Batterie, Battery Niveau :Débutant Date de création :23/08/2008 Date de mise à jour :30/08/2008 00:51:12 Vu / téléchargé :5 948 / 174

Auteur : boutemine

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Une petite application Pocket PC permettant de récuppérer l'état de batterie principale et secondaire d'un Pocket

L'application utilise une API du compact framework GetSystemPowerStatusEx2 déclarée dans l'assembly mscorelib

Source

  • using System;
  • using System.Runtime.InteropServices;
  • using System.Windows.Forms;
  • namespace PowerStatus
  • {
  • public partial class frmMain : Form
  • {
  • public frmMain()
  • {
  • InitializeComponent();
  • }
  • // Structure de données utilisée pour la lecture d'informations sur l'état de batterie
  • public class SYSTEM_POWER_STATUS_EX2
  • {
  • public byte ACLineStatus;
  • public byte BatteryFlag;
  • public byte BatteryLifePercent;
  • public byte Reserved1;
  • public uint BatteryLifeTime;
  • public uint BatteryFullLifeTime;
  • public byte Reserved2;
  • public byte BackupBatteryFlag;
  • public byte BackupBatteryLifePercent;
  • public byte Reserved3;
  • public uint BackupBatteryLifeTime;
  • public uint BackupBatteryFullLifeTime;
  • public uint BatteryVoltage;
  • public uint BatteryCurrent;
  • public uint BatteryAverageCurrent;
  • public uint BatteryAverageInterval;
  • public uint BatterymAHourConsumed;
  • public uint BatteryTemperature;
  • public uint BackupBatteryVoltage;
  • public byte BatteryChemistry;
  • }
  • [DllImport("coredll")]
  • private static extern uint GetSystemPowerStatusEx2(SYSTEM_POWER_STATUS_EX2 lpSystemPowerStatus, uint dwLen, bool fUpdate);
  • private void timer_Tick(object sender, System.EventArgs e)
  • {
  • // Appelle de la fonction, on lui passe le pointeur de la structure.
  • // elle remplit la structure de données et lit les données simplement
  • SYSTEM_POWER_STATUS_EX2 status = new SYSTEM_POWER_STATUS_EX2();
  • if (GetSystemPowerStatusEx2(status, (uint)Marshal.SizeOf(status), false) == (uint)Marshal.SizeOf(status))
  • {
  • // La barre de progression principale
  • this.lblMainBat.Text = String.Format("{0}%", status.BatteryLifePercent);
  • this.pbrMainLevel.Value = status.BatteryLifePercent;
  • switch (status.ACLineStatus)
  • {
  • case 0:
  • this.lblACStatus.Text = "Chargeur non connecté.";
  • break;
  • case 1:
  • this.lblACStatus.Text = "En charge.";
  • break;
  • case 2:
  • this.lblACStatus.Text = "Batterie secondaire en service.";
  • break;
  • case 3:
  • this.lblACStatus.Text = "Unconnu.";
  • break;
  • default:
  • break;
  • }
  • // Barre de progression secondaire.
  • this.lblBackupBat.Text = String.Format("{0}%", status.BackupBatteryLifePercent);
  • this.pbrBackLevel.Value = status.BackupBatteryLifePercent;
  • }
  • }
  • private void menuItem1_Click(object sender, EventArgs e)
  • {
  • if (MessageBox.Show("Voullez vous vraiment quitter l'application?","Confirmation de sortie",MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
  • Application.Exit();
  • }
  • private void menuItem2_Click(object sender, EventArgs e)
  • {
  • timer_Tick(this, EventArgs.Empty);
  • }
  • }
  • }
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace PowerStatus
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        
        // Structure de données utilisée pour la lecture d'informations sur l'état de batterie
        public class SYSTEM_POWER_STATUS_EX2
        {
            public byte ACLineStatus;
            public byte BatteryFlag;
            public byte BatteryLifePercent;
            public byte Reserved1;
            public uint BatteryLifeTime;
            public uint BatteryFullLifeTime;
            public byte Reserved2;
            public byte BackupBatteryFlag;
            public byte BackupBatteryLifePercent;
            public byte Reserved3;
            public uint BackupBatteryLifeTime;
            public uint BackupBatteryFullLifeTime;
            public uint BatteryVoltage;
            public uint BatteryCurrent;
            public uint BatteryAverageCurrent;
            public uint BatteryAverageInterval;
            public uint BatterymAHourConsumed;
            public uint BatteryTemperature;
            public uint BackupBatteryVoltage;
            public byte BatteryChemistry;
        }
        [DllImport("coredll")]
        private static extern uint GetSystemPowerStatusEx2(SYSTEM_POWER_STATUS_EX2 lpSystemPowerStatus, uint dwLen, bool fUpdate);

        private void timer_Tick(object sender, System.EventArgs e)
        {
            // Appelle de la fonction, on lui passe le pointeur de la structure.
            // elle remplit la structure de données et lit les données simplement

            SYSTEM_POWER_STATUS_EX2 status = new SYSTEM_POWER_STATUS_EX2();

            if (GetSystemPowerStatusEx2(status, (uint)Marshal.SizeOf(status), false) == (uint)Marshal.SizeOf(status))
            {
                // La barre de progression principale
                this.lblMainBat.Text = String.Format("{0}%", status.BatteryLifePercent);
                this.pbrMainLevel.Value = status.BatteryLifePercent;

                switch (status.ACLineStatus)
                {
                    case 0:
                        this.lblACStatus.Text = "Chargeur non connecté.";
                        break;
                    case 1:
                        this.lblACStatus.Text = "En charge.";
                        break;
                    case 2:
                        this.lblACStatus.Text = "Batterie secondaire en service.";
                        break;
                    case 3:
                        this.lblACStatus.Text = "Unconnu.";
                        break;
                    default:
                        break;
                }
                // Barre de progression secondaire.
                this.lblBackupBat.Text = String.Format("{0}%", status.BackupBatteryLifePercent);
                this.pbrBackLevel.Value = status.BackupBatteryLifePercent;
            }
        }

        private void menuItem1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Voullez vous vraiment quitter l'application?","Confirmation de sortie",MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                Application.Exit();
        }

        private void menuItem2_Click(object sender, EventArgs e)
        {
            timer_Tick(this, EventArgs.Empty);
        }
    }
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

30 août 2008 00:48:49 :
Ajout d'une capture écran Migration vers Microsot Windows Mobile 6
30 août 2008 00:51:13 :
Oups, j'ai oublier le zip

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] CLASSE SENDKEYS
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] CONNAÎTRE ET MODIFIER LE NIVEAU DE ...
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] UTILISER LA FENETRE CHOOSECONTACTDI...
Source .NET (Dotnet) [.NET COMPACT FRAMEWORK]PLANIFIER L'EXECUTION DE L'APPLICATI...
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] EFFECTUER DES APPELS TELEPHONIQUES.

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] CLASSE SENDKEYS par boutemine
Source avec Zip Source avec une capture Source .NET (Dotnet) TRAMES GPS par locust
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] UTILISER LA FENETRE CHOOSECONTACTDI... par boutemine
Source .NET (Dotnet) [.NET COMPACT FRAMEWORK]PLANIFIER L'EXECUTION DE L'APPLICATI... par boutemine
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET COMPACT FRAMEWORK] EFFECTUER DES APPELS TELEPHONIQUES. par boutemine

Commentaires et avis

Commentaire de boutemine le 30/08/2008 00:58:56

NB: Pour le simulateurs, On peut changer le niveau de la batterie
Voir Menu File-> Configure ... -> Peripherals puis on coche la case a cocher battery (Necessaire pour l'application) et on change le pourcentage...

Bon prog

Commentaire de neo2k2 le 15/10/2008 16:48:10

Je ne voudrais pas être méchant mais rajouter 2 progressbar, ce n'est pas coder un programme... :S

http://www.microsoft.com/downloads/details.aspx?familyid=e69968f9-5fc2-4456-852a-757f32312d91&displaylang=en

Commentaire de boutemine le 15/10/2008 16:55:58

Mais au moin j'ai participer par mais connaissance,

Je ne sais pas pourquoi tout le monde prend le réseau codes sources comme une biblio de programmes complets!!
Le code est mis sous la catégorie Débutant
En plus, c'est une démonstration de l'utilisation d'une API


et a la moindre Mettre une source didacticielle c'est pas coder un programme!

Si c'est le cas je te félicite pour cette montalité!

Commentaire de mohabakach le 12/06/2010 20:14:44

mrrci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

[vends] Ipaq 3765 + CF sleeve + Wifi + Batterie haute capacité, TBEG [ par Dreuteu ] Salut tout le mondeJe cherche a vendre mon Ipaq 3765Il est comme neuf, c'est a dire pas de rayures, ni sur la coque ni sur l'écran, le stylet est Récupérer niveau de batterie [ par graphtyrael ] Bonjour à toutes et à tous !Une petite question me trotte dans la tête depuis un petit moment : comment récupérer "simplement" un indicateur de l'état


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales