IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Quel est la résolution de mon écran ?
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 );
        

Comment mettre en veille l'écran instantanement ?
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

Comment empêcher l'exécution de l'écran de veille et la mise en veille ?
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.