我知道它應該類似于以下代碼:
[Code]
type
TSystemPowerStatus = {???};
function GetBattery(SYSTEM_POWER_STATUS: TSystemPowerStatus): Boolean;
external '[email protected] stdcall';
procedure ShowBatteryStatus();
var
PowerStatus: TSystemPowerStatus;
State: String;
begin
GetBattery(PowerStatus);
State := IntToStr(PowerStatus.BatteryLifePercent);
MsgBox(format('Battery Precents: %p',[State]), mbInformation, MB_OK);
end;
function InitializeSetup: Boolean;
begin
ShowBatteryStatus()
Result := True
end;
但我找不到合適的型別TSystemPowerStatus。
struct無法識別型別。
有人能幫忙嗎?
謝謝!
uj5u.com熱心網友回復:
這對我有用:
[Code]
type
TSystemPowerStatus = record
ACLineStatus : Byte;
BatteryFlag : Byte;
BatteryLifePercent : Byte;
Reserved1 : Byte;
BatteryLifeTime : DWORD;
BatteryFullLifeTime : DWORD;
end;
function GetSystemPowerStatus(var SYSTEM_POWER_STATUS: TSystemPowerStatus): Boolean;
external '[email protected] stdcall';
procedure ShowBatteryStatus();
var
PowerStatus: TSystemPowerStatus;
State: String;
begin
PowerStatus.ACLineStatus := 0;
PowerStatus.BatteryFlag := 0;
PowerStatus.BatteryLifePercent := 0;
PowerStatus.Reserved1 := 0;
PowerStatus.BatteryLifeTime := 0;
PowerStatus.BatteryFullLifeTime := 0;
if (GetSystemPowerStatus(PowerStatus)) then
begin
State := IntToStr(PowerStatus.BatteryLifePercent);
MsgBox(format('Battery Precents: %s',[State]), mbInformation, MB_OK);
end
else begin
MsgBox(SysErrorMessage(DLLGetLastError), mbError, mb_Ok);
end;
end;
function InitializeSetup: Boolean;
begin
ShowBatteryStatus()
Result := True
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454175.html
