Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: DragoRosso - Dicembre 18, 2022, 05:11:09 pm

Titolo: Comandare ON / OFF del Monitor
Inserito da: DragoRosso - Dicembre 18, 2022, 05:11:09 pm
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 ....

Codice: [Seleziona]
//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
Titolo: Re:Comandare ON / OFF del Monitor
Inserito da: quack - Dicembre 19, 2022, 09:15:47 pm
Ottimo trick! Ideale per qualche scherzo ben fatto. ;D
Titolo: Re:Comandare ON / OFF del Monitor
Inserito da: DragoRosso - Dicembre 19, 2022, 09:33:13 pm
Ottimo trick! Ideale per qualche scherzo ben fatto. ;D

Che mente da Hacker  ;D ;D ;D