AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Power-Status des Computers ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Power-Status des Computers ermitteln?

Ein Thema von joe666sa · begonnen am 4. Mai 2004 · letzter Beitrag vom 8. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
joe666sa

Registriert seit: 11. Jun 2003
54 Beiträge
 
#1

Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:29
Hab diese Lösung zur realisierung gefunden.

Code:
procedure GetStatus;
var SystemPowerStatus: TSystemPowerStatus;
begin

  GetSystemPowerStatus(SystemPowerStatus);
  with SystemPowerStatus do begin
  // Wird das System mit Wechselstrom oder Akku betrieben ?
    case ACLineStatus of
      0: Label1.Caption := 'System wird mit Akku betrieben';
      1: Label1.Caption := 'System wird mit Wechselstrom betrieben';
      else Label1.Caption := 'Unbekannter Status';
    end;

    // Ladezustand der Batterie
    case BatteryFlag of
      1 : Label2.Caption := 'Hoher Ladezustand';
      2 : Label2.Caption := 'Niedriger Ladezustand';
      4 : Label2.Caption := 'Kritischer Ladezustand';
      8 : Label2.Caption := 'Die Batterie wird geladen';
      128: Label2.Caption := 'Es existiert keine System-Batterie';
      255: Label2.Caption := 'Unbekannter Status';
    end;

    // Ladezustand in Prozent
    if BatteryLifePercent <> 255 then
      Label3.Caption := IntToStr(BatteryLifePercent) + ' %'
    else
      Label3.Caption := 'Unbekannter Status';
  end;
end;
Nur beim Compeilieren des codes bekomme ich immer folgende fehlermeldungen.

[Error] Unit1.pas(34): Undeclared identifier: 'Label1'
[Error] Unit1.pas(35): Missing operator or semicolon
[Error] Unit1.pas(36): Missing operator or semicolon
[Error] Unit1.pas(41): Undeclared identifier: 'Label2'
[Error] Unit1.pas(42): Missing operator or semicolon
[Error] Unit1.pas(43): Missing operator or semicolon
[Error] Unit1.pas(44): Missing operator or semicolon
[Error] Unit1.pas(45): Missing operator or semicolon
[Error] Unit1.pas(46): Missing operator or semicolon
[Error] Unit1.pas(51): Undeclared identifier: 'Label3'
[Error] Unit1.pas(53): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


Esetze ich die label mit showmessage dann gehts.

Und hat irgend wer noch mehr infos was ich da alles auslesen kann.

Mfg joe666sa
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:31
Hi!

Hast du auch 3 Labels auf deine Form gezogen?


Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:33
Moin Joe,

schau Dir doch einfach im PSDK oder auf MSDN mal die Dokumentation zu MSDN-Library durchsuchenSYSTEM_POWER_STATUS an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:35
Hi!

@Christian:
Die Funktion ist Ok, er muss nur 3 Labels aufs Form ziehen, dann geht es fehlerfrei.


Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:35
Binde diese procedur unter private ein, oder schreibe einfach immer

Form1.Label1.Caption := ... Aber ich kann dir auch die komplette Unit zeigen, falls du das möchtest.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:36
Ach, hier haste es:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure GetStatus;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GetStatus;
var SystemPowerStatus: TSystemPowerStatus;
begin

  GetSystemPowerStatus(SystemPowerStatus);
  with SystemPowerStatus do begin
  // Wird das System mit Wechselstrom oder Akku betrieben ?
    case ACLineStatus of
      0: Label1.Caption := 'System wird mit Akku betrieben';
      1: Label1.Caption := 'System wird mit Wechselstrom betrieben';
      else Label1.Caption := 'Unbekannter Status';
    end;

    // Ladezustand der Batterie
    case BatteryFlag of
      1 : Label2.Caption := 'Hoher Ladezustand';
      2 : Label2.Caption := 'Niedriger Ladezustand';
      4 : Label2.Caption := 'Kritischer Ladezustand';
      8 : Label2.Caption := 'Die Batterie wird geladen';
      128: Label2.Caption := 'Es existiert keine System-Batterie';
      255: Label2.Caption := 'Unbekannter Status';
    end;

    // Ladezustand in Prozent
    if BatteryLifePercent <> 255 then
      Label3.Caption := IntToStr(BatteryLifePercent) + ' %
    else
      Label3.Caption := 'Unbekannter Status';
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetStatus;
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:41
Moin fkerber,

die von der Funktion genutzte Struktur hat aber noch mehr Felder, und die eigentliche Frage lautete ja

Zitat von joe666sa:
Und hat irgend wer noch mehr infos was ich da alles auslesen kann.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:43
Hi!

Oh, sorry, muss ich überlesen haben

Hatte nur die Fehler im Auge.


Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Power-Status des Computers ermitteln?

  Alt 4. Mai 2004, 22:44
Ich auch Gute Nacht!
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#10

Re: Power-Status des Computers ermitteln?

  Alt 5. Mai 2004, 02:46
Zitat von joe666sa:
Code:
    // Ladezustand der Batterie
    case BatteryFlag of
      1 : Label2.Caption := 'Hoher Ladezustand';
      2 : Label2.Caption := 'Niedriger Ladezustand';
      4 : Label2.Caption := 'Kritischer Ladezustand';
      8 : Label2.Caption := 'Die Batterie wird geladen';
      128: Label2.Caption := 'Es existiert keine System-Batterie';
      255: Label2.Caption := 'Unbekannter Status';
    end;
Einige Flags können auch gleichzeitig vorkommen (zum Beipiel 'Ladezustand' und 'wird geladen')
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SystemPowerStatus: TSystemPowerStatus;
  Text: string;
begin
  if GetSystemPowerStatus(SystemPowerStatus) then
    with SystemPowerStatus do
    begin
      // Wird das System mit Wechselstrom oder Akku betrieben ?
      case ACLineStatus of
        0: Text := 'System wird mit Akku betrieben';
        1: Text := 'System wird mit Wechselstrom betrieben';
      else
        Text := 'Unbekannter Status';
      end;
      Label1.Caption := Text;

      // Ladezustand der Batterie
      if (BatteryFlag = 255) then
        Text := 'Unbekannter Status'
      else if (BatteryFlag and 128 = 128) then
        Text := 'Es existiert keine System-Batterie'
      else
      begin
        case (BatteryFlag and (1 or 2 or 4)) of
          1: Text := 'Hoher Ladezustand';
          2: Text := 'Niedriger Ladezustand';
          4: Text := 'Kritischer Ladezustand';
        else
          Text := 'Unbekannter Ladezustand';
        end;
        if (BatteryFlag and 8 = 8) then
          Text := Text + ' (Die Batterie wird geladen)';
      end;
      Label2.Caption := Text;

      // Ladezustand in Prozent
      if (BatteryLifePercent <> 255) then
        Text := IntToStr(BatteryLifePercent) + ' %'
      else
        Text := 'Unbekannter Status';
      Label3.Caption := Text;
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz