Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
37 - LISTER LES MONITEURS DISPONIBLES

PRÉSENTATION : Ce programme affiche la liste des moniteurs
ZIP : Téléchargez le zip APERÇUS :

NOTES : C'est en réponse à une question dans un forum.
Attention : ne fonctionne pas avec Windows95.

CODE :
Unit Unit1;
// Obtenir la liste des moniteurs présents sur votre PC.
//
// Par Nono40 : http://nono40.developpez.com   http://nono40.fr.st
//              mailTo:nono40@fr.st
//
// Le 25/01/2002
//

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Type
  TForm1 = Class(TForm)
    Memo1: TMemo;
    Procedure FormShow(Sender: TObject);
  Private
    { Déclarations privées }
  Public
    { Déclarations publiques }
  End;

Var
  Form1: TForm1;

Implementation

{$R *.dfm}

// Type utilisé par la fonction GetMonitorInfo pour
// retourner les informations sur le moniteur voulu
Type
  PMonitorInfoEx=^TMonitorInfoEx;
  TMonitorInfoEx=Record
    cbSize    : DWord;
    rcMonitor : TRect;
    rcWork    : TRect;
    dwFlags   : DWord;
    szDevice  : Array[0..CCHDEVICENAME-1]Of Char;
  End;

// Fonction donnant des informations sur un moniteurs
Function GetMonitorInfo(Montiteur:THandle;LpInfo:PMonitorInfoEx)
     :Bool;StdCall; external User32 name 'GetMonitorInfoA';

// Fonction d'énumération des moniteurs présents
Function EnumDisplayMonitors(DC:HDC;LpRect:PRect;CallBack:TFarProc;Param:Pointer)
     :Bool;StdCall; external user32 name 'EnumDisplayMonitors';

// Procédure appelée par l'énumérateur des moniteurs
Function EnumProc(Moniteur:THandle;DC:HDC;Rect:PRect;Param:Pointer):Bool;StdCall
Var Infos:TMonitorInfoEx;
Begin
  // Pour chaque moniteurs rencontré, on en recherche le nom
  Infos.cbSize:=SizeOf(Infos);
  If GetMonitorInfo(Moniteur,@Infos)Then Form1.Memo1.Lines.Add(Infos.szDevice);
  // Et on continue l'énumération
  Result:=True;
End;

// Enumération des moniteurs au démarrage de l'application
Procedure TForm1.FormShow(Sender: TObject);
Begin
  Memo1.Lines.Clear;
  EnumDisplayMonitors(0,Nil,@EnumProc,Nil);
End;

End.

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -