;Func _ChangeMultiDispSettings($i_iDispNum = -1, $i_Width = -1, $i_Height = -1, $i_PositionX = "", $i_PositionY = "", $i_RefreshRate = -1, $i_BitsPerPel = -1, $i_Update = 0) ;- i_iDispNum : Identifiant de l'écran. Généralement l'écran n°1 est l'écran principal. Mais ce n'est pas toujours le cas. ;- i_Width : Largeur en pixel de la nouvelle résolution ;- i_Height : Hauteur en pixel de la nouvelle résolution ;- i_PositionX : Abscisse du point en coin supérieur gauche de l'écran par rapport à l'origine (qui est en principe le coin superieur gauche de l'écran principale). Si vous changez les coordonnées de l'écran principale, il se peut qu'il devienne un écran secondaire. ;- i_PositionY : Idem que pour i_PositionX mais en ordonnée ;- i_RefreshRate : Fréquence de rafraîchissement de l'écran. (une valeur en général supportée est de 60Hz) ;- i_BitsPerPel : Profondeur des couleurs (ou nombre de bits par pixel). Windows 8 ne gère plus que le mode 32bit (les autres sont émulés) ;- i_Update : Valeur par défaut 0. Si 1: Le refresh de l'écran est empêché (permet d'éviter trop de clignotement). Si -1: le rafraichissement est forcé ;En cas d'erreur, @error est reglé à 1 et la fonction retourne un code d'erreur negatif ;En cas de succès, la fonction retourne les coordonées de l'écran en question dans un tableau de deux case ;Les numéro correspondants aux ecran sont les mêmes que dans le panneau de config windows. ;Les coordoneées qui s'affichent lorsqu'on glisse l'écran n°2 dans le panneau de config sont les même que pour cette fonciton. ;----- Exemples ----------; #include "ChangeMultiDispSettings.au3" ; Evitez de lancer toutes les lignes ci-dessous en même temps (à moins que vous vouliez voir votre écran se transformer en sapin de noël clignotant ! ) ; On prendra pour ces exemples : un écran n°1 à 1920x1080 placé à droite et un écran 1280x1024 placé à gauche ;Changer la résolution de l'écran n°1 à 1920x1080 _ChangeMultiDispSettings(1,1920,1080) ;Changer la fréquence à 60Hz et la profondeur des couleurs à 32bits de l'écran n°1 _ChangeMultiDispSettings(1,"","","","",60,32) ;Changer la position de l'écran n°2 _ChangeMultiDispSettings(2,"","",1024,-1280) ;Configurer deux écrans en même temps en évitant un double clignotement de l'écran : On met le 8eme argument (i_Update) en 1 pour toute les lignes (pour empecher le reset des ecrans) puis on met 2 sur la derniere pour forcer le reset final _ChangeMultiDispSettings(1,1920,1080,0,0,"","",1) _ChangeMultiDispSettings(2,1280,1024,-1024,23,"","",2) ;Changer d'écran principale : On met le nouvel écran principal en 0.0 puis on déplace le(s) autre(s) plus loin.. ;config avant _ChangeMultiDispSettings(1,1920,1080,0,0,"","",1) _ChangeMultiDispSettings(2,1280,1024,-1024,23, "","",2) ;config apres _ChangeMultiDispSettings(2,1280,1024,0,0, "","",1) _ChangeMultiDispSettings(1,1920,1080,-1024,-23,"","",2) ;recuperer la resolution d'un écran Local $res = _ChangeMultiDispSettings(1) ConsoleWrite("Résolution de l'écran n°1 : " & $res[0] & "x" & $res[1] & @CRLF) ;Savoir si un écran existe Local $tab = _ChangeMultiDispSettings(9084) if $tab[0] = 0 Then ConsoleWrite("L'écran n°9084 n'existe pas :O !" & @CRLF) if $tab[0] <> 0 Then ConsoleWrite("L'écran n°9084 existe ! T'es riche en écran toi, non ?" & @CRLF) ;Forcer un reset de l'écran sans aucune données _ChangeMultiDispSettings()