Riporto da il forum di Delphi Praxis https://en.delphipraxis.net/topic/8024-turn-display-offon/ (https://en.delphipraxis.net/topic/8024-turn-display-offon/) le seguenti interessanti procedure per accendere / spegnere i monitor (funziona sotto Windows).
Per testare, create un nuova applicazione, inserite un TButton e un TTimer. Doppio click sui componenti e copiate il contenuto del codice qui sotto indicato.
E' utile ad esempio per accendere il monitor quando si deve "attirare" l'attenzione dell'utente durante lo standby del monitor stesso. Idem per spegnere il monitor quando l'applicazione lo ritiene necessario ....
//Aggiungete la unit Windows nella USES
Uses Windows;
//Inserite queste costanti nel vs. programma
const
MONITOR_ON = -1; //Non funziona da molto tempo (sicuramente dal 2015)
MONITOR_OFF = 2; //Questo funziona
MONITOR_STANDBY = 1; //Apparentemente non fà nulla
procedure TForm1.Button1Click(Sender: TObject);
begin
//SPEGNE i Monitor
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
Timer1.Interval := 10000;
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//ACCENDE i Monitor
Timer1.Enabled := false;
//Accende i Monitor simulando la pressione del tasto SHIFT
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
Saluti