![]() |
Power-Status des Computers ermitteln?
Hab diese Lösung zur realisierung gefunden.
Code:
Nur beim Compeilieren des codes bekomme ich immer folgende fehlermeldungen.
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; [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 |
Re: Power-Status des Computers ermitteln?
Hi!
Hast du auch 3 Labels auf deine Form gezogen? Ciao fkerber |
Re: Power-Status des Computers ermitteln?
Moin Joe,
schau Dir doch einfach im PSDK oder auf MSDN mal die Dokumentation zu ![]() |
Re: Power-Status des Computers ermitteln?
Hi!
@Christian: Die Funktion ist Ok, er muss nur 3 Labels aufs Form ziehen, dann geht es fehlerfrei. Ciao fkerber |
Re: Power-Status des Computers ermitteln?
Binde diese procedur unter private ein, oder schreibe einfach immer
Delphi-Quellcode:
Aber ich kann dir auch die komplette Unit zeigen, falls du das möchtest. ;)
Form1.Label1.Caption := ...
|
Re: Power-Status des Computers ermitteln?
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; |
Re: Power-Status des Computers ermitteln?
Moin fkerber,
die von der Funktion genutzte Struktur hat aber noch mehr Felder, und die eigentliche Frage lautete ja Zitat:
|
Re: Power-Status des Computers ermitteln?
Hi!
Oh, sorry, muss ich überlesen haben :oops: Hatte nur die Fehler im Auge. Ciao fkerber |
Re: Power-Status des Computers ermitteln?
Ich auch :oops: Gute Nacht! :lol:
|
Re: Power-Status des Computers ermitteln?
Zitat:
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; |
Re: Power-Status des Computers ermitteln?
@NicoDE
Das fünktioniert aber hald aber leider muss ich die stellen Laberlx.caption := Text weglassen. Aber die frage ist hald warum. |
Re: Power-Status des Computers ermitteln?
Ich weiß nicht, du könntest Variablenparameter vom Typ String verlangen und die Ergebnisse dort hineinschreiben, du könntest auch ein Form angeben lassen das Labels enthält, oder du machst es so wie Matze gesagt hat:
Zitat:
|
Re: Power-Status des Computers ermitteln?
Zitat:
|
Re: Power-Status des Computers ermitteln?
lad dir dochmal auf der
![]() |
Re: Power-Status des Computers ermitteln?
So und hier das ganze aufbereitet für die Code-Lib:
Delphi-Quellcode:
Unabhängig von irgendwelchen Labels oder sonstigen Zeug, zu dem wird der Letzte Systemfehler zurückgegeben auf dem man testen kann, ob alles geklappt hat, bzw. wenn nicht kann man ihn anzeigen lassen.
function GetPowerStatus(var HasBattery: Boolean; var LoadStatusString: String;
var LoadstatusPercent: Integer): DWORD; var SystemPowerStatus: TSystemPowerStatus; Text: string; resourcestring rsLoadStatusUnknown = 'Unbekannter Status'; rsLoadStatusNoBattery = 'Es existiert keine Batterie'; rsLoadStatusHigh = 'Hoher Ladezustand'; rsLoadStatusLow = 'Niedriger Ladezustand'; rsLoadStatusCritical = 'Kritischer Ladezustand'; rsLoadStatusLoading = 'Batterie wird geladen'; rsLoadSatusUnknownLoading = 'Unbekannter Ladezustand'; begin SetLastError(0); if GetSystemPowerStatus(SystemPowerStatus) then with SystemPowerStatus do begin HasBattery := ACLineStatus = 0; // Ladezustand der Batterie if (BatteryFlag = 255) then Text := rsLoadStatusUnknown else if (BatteryFlag and 128 = 128) then Text := rsLoadStatusNoBattery else begin case (BatteryFlag and (1 or 2 or 4)) of 1: Text := rsLoadStatusHigh; 2: Text := rsLoadStatusLow; 4: Text := rsLoadStatusCritical; else Text := rsLoadSatusUnknownLoading end; if (BatteryFlag and 8 = 8) then LoadStatusString := Text + rsLoadStatusLoading; end; // Ladezustand in Prozent if (BatteryLifePercent <> 255) then LoadstatusPercent := BatteryLifePercent else LoadstatusPercent := -1; end; Result := GetLastError; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz