11
votes

Comment puis-je obtenir des numéros de moniteurs à partir de la dialogue Résolution d'écran dans Win7 Programmatiquement?

Lorsque vous appuyez sur le bouton Identifier dans le dialogue Résolution de l'écran puis Windows affiche les numéros de vous grand écran blanc sur chaque moniteur. Il était facile de les trouver avec les coordonnées programmation du moniteur dans Windows XP (avec EnumDisplayDevices), mais sous Windows 7, il est cassé. Comment puis-je faire?

  1. EnumDisplayDevices et GetMonitorInfo sont fait qu'il ya trop deux ans et a affirmé que getMonitorInfo a un bug. Ce bug a été marqué comme fixé par Microsoft sans commentaires, mais il peut encore être reproduite sur une machine ayant win7 dernières mises à jour. (BTW, quelqu'un peut-il me dire - peut-être ce bug est absent sur Win8)
  2. J'ai essayé QueryDisplayConfig de nouvelle API CCD mais n'a pas trouvé d'information nécessaire.

    Quelqu'un sait-il le chemin?


3 Réponses :


1
votes

Je n'ai jamais voulu savoir dans mes applications Windows, le nombre de moniteurs, mais vous pouvez appeler getSystemmetrics fonction avec valeur de paramètre sm_cmoniteurs Pour obtenir le nombre d'affichages sur un bureau.

i appel dans ma fonction d'applications Windows getSystemmetrics principalement avec les valeurs de paramètre sm_cxvirtualscreen , sm_cyvirtualscreen , sm_xvirtualscreen et SM_YVIRTUALScreen Pour éviter d'ouvrir complètement ou partiellement en dehors de la zone d'affichage. Une fenêtre d'application pourrait néanmoins être visible si l'utilisateur a étendu la zone d'affichage sur plusieurs moniteurs, mais tous ne sont pas allumés.

Le fonction SystemParameTersInfo fonction fonction avec la valeur SPI_GETWORKAREA pour UIAGE Paramètre est également très utile pour savoir où une fenêtre d'application peut être positionnée et la taille de la taille de la largeur et de la hauteur sur l'écran primaire sans être partiellement cachée par d'autres fenêtres ( barres) étant toujours sur le dessus.

Voir aussi GetMonitorInfo fonction si plus d'informations de Les moniteurs sont requis dans votre application Windows.


0 commentaires

0
votes

Pour les versions Windows prenant en charge WDDM, quelle que soit Windows 7, vous pouvez simplement utiliser DXGI qui fait partie de DirectX. DXGI vous permet d'énumérer très facilement les adaptateurs d'affichage existants, les sorties d'affichage disponibles par adaptateur et les modes d'affichage pris en charge par sortie d'affichage. Tout en énumérant, il y a beaucoup de données supplémentaires, vous pouvez lire, comme des poignées, des identificateurs et des noms de périphériques. Tout cela peut facilement être utilisé pour extraire également les zones de travail. L'ordre dans lequel les adaptateurs et les sorties sont énumérés sont définis par le système et correspond à l'ordre de votre écran de configuration.

voir ici pour plus d'informations: Vue d'ensemble MSDN DXGI


0 commentaires

3
votes

Windows ne fournit pas de fonction permettant aux applications d'obtenir les numéros utilisés par l'application Paramètres d'affichage. Les chiffres eux-mêmes sont spécifiques uniquement à l'application Paramètres d'affichage et n'ont aucune signification dans le système ou dans le API CCD utilisé pour interroger / définir la topologie d'affichage.

La meilleure option est que les applications définissent leurs propres critères permettant d'attribuer un index lorsque vous invitez l'utilisateur à sélectionner un écran.


0 commentaires