Hallo Jungs,
ich habe mich nun im
MSDN umgeshen und habe in der
API Referenz SystemParameterInfo gefunden, da hab ich gleich mal bischen rumgetestet und bin auf ein Probelme gestossen.
Vorhaben:
Ich möchte mit einem Programm auf meinem Lappi den Screensaver und ddas EnegryManagement deaktivieren.
Mein Problem:
Ich kann alles deaktivieren, gemacht hab ichs so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
SystemParametersInfo(SPI_SETPOWEROFFACTIVE,1,nil,0);
SystemParametersInfo(SPI_SETPOWEROFFACTIVE, 1, nil,0);
Label2.Font.Color := $002DB000;
Label2.Caption := 'Enabled';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SystemParametersInfo(SPI_SETPOWEROFFACTIVE,0,nil,0);
SystemParametersInfo(SPI_SETPOWEROFFACTIVE, 0, nil,0);
Label2.Font.Color := $000000DD;
Label2.Caption := 'Disabled';
end;
So schalte ich also während der Laufzeit ein und aus.
Laut
API habe ich aber gedacht das wenn ich das Programm beende das ding deaktiviert bleibt, wenn ich aber deaktiviere und das Programm neu starte dann is der Status wieder aktiviert.
Habe ich das falsch verstanden und das setzt sich wieder auf True oder hab ich nen Fehler im Code?
Weiters habe ich das Problem das zwar der Dienst deaktiviert wurde aber im Windows unter Systemsteuerungen alles als normal angezeigt wird (aktiv), kann ich diese Anzeige nicht auch umstellen, damit das auch wirklich so angezeigt wird?
Überprüfen tu ich so:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
Value: Integer;
begin
if SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,0,@Value,0) then
if Value <> 0 then
begin
Label2.Font.Color := $002DB000;
Label2.Caption := 'Enabled';
end;
if SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,0,@Value,0) then
if Value = 0 then
begin
Label2.Font.Color := $000000DD;
Label2.Caption := 'Disabled';
end;
end;
Danke für die Hilfe oder Tips