[..] Récupérer les noms des écrans

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

[..] Récupérer les noms des écrans

#1

Message par TommyDDR »

Bonjour,

Ce n'est pas vraiment une demande d'aide mais plutôt une demande de test, je me torture l'esprit pour trouver les noms d'écrans en fonction du device number.
J'en suis arrivé au code ci dessous, et j'aimerai que vous le testiez et me disiez si vous trouvez tous le/les bons noms d'écrans.
Résultats de la forme :
Écran n°1 : XXXX | XXXX
Écran n°2 : YYYY | YYYY
etc

(deux fois les mêmes valeurs par ligne, si vous n'en avez qu'une ou 0 merci de me l'indiquer)

Pour connaitre le nom de son écran :
Win XP : Il n'affiche pas le vrai nom, je n'ai donc pas besoin de tests sous XP
Win 7/8 : Clic droit / Résolution d'écran

Le plus simple est de lancer le script, faire Ctrl + c dans la MsgBox et de le coller ici
► Afficher le textecode
Merci par avance.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#2

Message par orax »

Code : Tout sélectionner

Écran n°1 : BenQ BL2400 | BenQ BL2400
Alors j'ai 2 écrans. Le BenQ c'est bien le 1er. Je n'ai pas de Msgbox qui s'affiche pour le second. Testé sur Win7.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#3

Message par overflow »

Code : Tout sélectionner

        $regId = StringSplit($regId, "{", 3) ;[0]
        $name = _MonitorGetNameByRegId($regId[0])


        $edid = StringSplit($edid[1], "0A", 3);[0]
        $retour = BinaryToString("0x" & $edid[0])

 
---------------------------

---------------------------
Écran n°1 : ZM-M240W | ZM-M240W
Écran n°2 : SAMSUNG | SAMSUNG

---------------------------
OK
---------------------------
je ne sais pas comment tu classe les ecrans
le moniteur identifier 1 par ma carte graphique c est le samsung et l asus le 2
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#4

Message par TommyDDR »

L'ordre est celui de _WinAPI_EnumDisplayDevices (un élément de l'array permet de savoir si c'est l'écran principal)

@orax : _MonitorGetCount() renvoie bien 2 ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#5

Message par orax »

Non, _MonitorGetCount() renvoie 1. J'ai vérifié dans le registre et c'est bien 1 que j'ai.
Sur la carte graphique intégrée j'ai le Benq (sur le port DVI) et un Liteon (sur le port VGA).

Édité : Le Liteon (l'écran secondaire) est vu comme PnP-Monitor (Standard) dans le gestionnaire de périphériques. De plus, il n'y a pas d'ID qui est récupéré pour cet écran.

Code : Tout sélectionner

$aDevice = _WinAPI_EnumDisplayDevices('\\.\DISPLAY2', 0) ; Le Liteon
; $aDevice[1] = "\\.\DISPLAY2\Monitor0"
; $aDevice[2] = "PnP-Monitor (Standard)"
; $aDevice[4] = "" 
Modifié en dernier par orax le mer. 24 sept. 2014 14:34, modifié 2 fois.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#6

Message par TommyDDR »

Je n'ai plus qu'à chercher un autre moyen de compter les moniteurs..

EDIT :
► Afficher le textecode
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#7

Message par orax »

Là j'ai bien 2. ^^
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#8

Message par jguinch »

Regarde le post #5, ça pourrait te convenir : http://www.autoitscript.com/forum/topic ... ?p=1199697
Et le post #7 pour compter le nombre d'écrans

Edit
Sinon, pour répondre à ta question d'origine, j'ai le résultat suivant, qui correspond bien à ma config (en même temps, c'est les 2 mêmes écrans) :

Code : Tout sélectionner

Écran n°1 : E1910      | E1910     
Écran n°2 : E1910      | E1910  
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#9

Message par TommyDDR »

@orax : avec les bon noms ? :3
@jguinch : merci, je vais voir ça ce soir ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#10

Message par orax »

J'avais juste vérifié la fonction. Le nom (qui devrait être PnP-Monitor (Standard)) ne s'affiche pas.

Code : Tout sélectionner

Écran n°1 : BenQ BL2400 | BenQ BL2400
Écran n°2 :  |
Mais c'est peut-être normal puisque le Liteon (l'écran secondaire) n'a pas d'ID (j'avais édité mon message) : http://www.autoitscript.fr/forum/viewto ... 943#p89943

Avec ce code, pour le Liteon, la msgbox m'indique juste le nom (sans l'ID) : PnP-Monitor (Standard)
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#11

Message par Yogui »

Écran n°1 : DELL P1914S | DELL P1914S
Écran n°2 : DELL P1914S | DELL P1914S
Écran n°3 : |

petite contribution du boulot

c'est donc ok pour moi
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Récupérer les noms des écrans

#12

Message par TommyDDR »

Merci à tous pour vos réponses.

Juste pour le plaisir, voici le mien :

Écran n°1 : W2252 | W2252
Écran n°2 : Rift DK2 | Rift DK2
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre