
| auteur : Atlantis
| Pour connaître la résolution de l'écran, inutile de faire appel aux API de windows. Il existe sous Delphi la variable Screen qui permet de l'obtenir. La variable Screen est un composant TScreen qui représente l'écran du système sur lequel fonctionne l'application Delphi. Par défaut, les applications créent un composant écran fondé sur les informations fournies par Windows sur le périphérique écran en cours et l'affectent à Screen. Screen.Width: Integer; : Indique la hauteur, exprimée en pixels, de l'écran. Screen.Height: Integer; :Indique la largeur, exprimée en pixels, de l'écran.
MessageDlg('Largeur de l''écran = ' + IntToStr( Screen.Width ) +
' pixels, Hauteur de l''écran = ' + IntToStr( Screen.Height )+' pixels',
mtInformation, [mbOk], 0 );
|
| auteur : Al-Yazdi
| Il nous suffit pour celà de se servir de la fonction SendMessage fournie par l'API Windows :
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1);
Cette fonction marche avec toutes les versions de Windows. |
lien : MSDN - WM_SYSCOMMAND - SC_MONITORPOWER
|
| auteur : Gysmo
| Dans certains cas, il est pratique qu'au lancement du programme celui-ci désactive l'écran de veille ainsi que la mise en veille du moniteur. Pour cela, nous allons utiliser l'API SystemParametersInfo(uiAction: Cardinal; uiParam: Cardinal; pvParam: Pointer; fWinIni:Cardinal) de l'unité ShellApi.
uses
ShellApi;
const
WinIni = SPIF_UPDATEINIFILE;
var
Param: DWord;
//Au lancement de l'application attente
procedure TMyForm.FormCreate(Sender: TObject);
begin
//Ecran de veille :
//Si l'écran de veille est actif
if not SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, nil, WinIni) then
//Alors on le désactive
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, WinIni);
//Mise en veille moniteur :
//On recupére le temps d'attente avant la mise en veille
SystemParametersInfo(SPI_GETPOWEROFFTIMEOUT, 0, @Param, WinIni);
//Si cette valeur est superieur à zéro
if Param > 0 then
//Alors on desactive la mise en veille
SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, 0, nil, WinIni);
end;
//A la fermeture de l'application on rétablie les valeurs
procedure TMyForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Ecran de veille :
if not SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 1, nil, WinIni) then
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, nil, WinIni);
//Mise en veille moniteur :
if Param > 0 then
SystemParametersInfo(SPI_SETPOWEROFFTIMEOUT, Param, nil, WinIni);
end;
Ceci fonctionne avec toutes les versions de Windows. |
lien : MSDN - SystemParametersInfo
|
Ce document issu de
www.developpez.com
est soumis à la licence
GNU FDL
traduit en français
ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.
|