web-dev-qa-db-fra.com

Quelle clé de registre ou quel fichier Windows détermine où les moniteurs sont placés dans un environnement multi-moniteurs?

J'ai un ordinateur portable avec un adaptateur USB vers VGA qui me permet d'ajouter un troisième moniteur à mon ordinateur portable (le deuxième moniteur utilise l'emplacement intégré).

Cela fonctionnait parfaitement sous Windows Vista: vous pouviez entrer dans les paramètres d’affichage de Windows et Windows reconnaîtrait le troisième moniteur et vous permettrait de le faire glisser en conséquence. Avec Windows 7, le troisième moniteur ne figure littéralement pas dans les paramètres d'affichage de Windows. Le pilote vous permet d'afficher sur le troisième moniteur, mais vous ne pouvez pas vous déplacer là où il se trouve. Les paramètres d’affichage sont mal placés par rapport aux deux autres (si vous y faites glisser des fenêtres, elles se retrouvent au bas de la page quand elles doivent être alignées).

J'ai appelé le support technique et ils m'ont dit qu'il n'y avait pas encore de pilote avec cette fonctionnalité pour Windows 7. Mais voici mon intuition. L'emplacement du moniteur est encore un peu similaire à celui sur lequel je l'avais sur Vista, il est juste à côté d'environ 500 pixels. Je pense qu’une clé de registre ou un fichier de pilote indique quelque part à ce moniteur où il doit exister. Si je pouvais simplement modifier le nombre et le déplacer de 500 pixels, il serait au bon endroit et je n'aurais pas à attendre 6 mois pour que la société propose un nouveau pilote.

Des idées?

17
dfree

Découvrez les différentes clés et dossiers dans

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

Plus précisément, dans les sous-dossiers MonXXXXXXX les plus intérieurs, doivent être les valeurs Attach.RelativeX et Attach.RelativeY, qui correspondent à l'emplacement des moniteurs par rapport au pixel 0,0.

Étrangement, lorsque je vérifie ici une machine Windows 7 avec deux moniteurs, le deuxième moniteur ne semble pas apparaître. Mais ma machine XP affiche les trois miens, votre kilométrage peut donc varier.

Si rien d'autre c'est un endroit pour commencer!

8
Ƭᴇcʜιᴇ007

Pour tous ceux qui recherchent la clé dans Windows 7, celle-ci se trouve dans l'un des dossiers de:

HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\

Recherchez Position.cx et Position.cy dans chacun des sous-dossiers; vous devez éditer la chaîne hexadécimale.

Convertisseur binaire/décimal/hexadécimal:

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

27
Sean

J'aurais aimé savoir pourquoi cela fonctionnait, mais je le sais aussi:

Pour que le moniteur monte (car les négatifs ne sont pas autorisés par le registre), vous devez utiliser les valeurs de attach.relativeY comme ceci: 4294967040

Merci à ce forum pour aider à comprendre cette partie - http://www.ureader.com/msg/164488.aspx

Si vous abaissez les 4 derniers chiffres de ce numéro, le moniteur baisse et inversement. Cela fonctionnera également pour attach.relativeX. Un petit ajustement et mon installation était de retour à la normale.

Qui a besoin de pilotes fonctionnels pshh

4
dfree

Soustrayez le montant que vous souhaitez rendre négatif de 4294967296 pour obtenir le numéro dont vous avez besoin pour le registre. C'est-à-dire pour 4294967296 - 250 = 4294967046.

Pour vous geeks ...

Le désagrément ici est dû au fait que l'éditeur de registre n'interprète pas les 32 bits comme autre chose qu'un entier décimal non signé ou une représentation hexadécimale de données binaires. Toutefois, lorsque Windows récupère ces données binaires lors du positionnement de vos écrans, il les interprète comme un entier signé. Pour que Windows sache qu'un entier signé 32 bits est négatif, il définit le dernier bit sur 1 (le plus à gauche) et le reste des bits est inversé. Donc, -1 aura une valeur binaire de 11111111 11111111 11111111 11111111 (hex: FF FF FF FF). Si vous traduisez cela en un entier décimal non signé (comme le fait l'éditeur de registre), vous obtenez 4 294 967 295. Donc, pour nos besoins, 0 équivaut à 4 294 967 296 auquel vous pouvez simplement ajouter votre nombre négatif pour obtenir l'entier décimal non signé dont vous avez besoin et que l'éditeur de registre enregistre sous forme binaire et que le système interprétera ultérieurement comme un entier signé négativement. .

2
dynamichael

Au lieu de calculer des valeurs négatives, il est peut-être plus facile de comprendre si vous maintenez toutes les valeurs positives en faisant une valeur logique de 0,0 en haut à gauche physique d'une boîte virtuelle que vous dessineriez si vous tentiez d'encercler tous les moniteurs. Pensez comme lorsque vous déplacez un moniteur vers le haut et la gauche, que vous poussez vraiment les autres vers la droite et vers le bas.

Par exemple, j'avais un moniteur 1280x1024 et 1920x1200 avec le premier plus petit qui passait par défaut en haut à droite du second, pas en bas à gauche du premier où il est physiquement positionné (à gauche) et aligné avec (bord inférieur à la même hauteur , le haut est plus bas bien sûr car ce n’est pas aussi haut).

Ainsi, pour commencer, le deuxième moniteur 1920x1080 était en position 0,0 et le premier en 1920,0. Au lieu d'essayer de calculer négatif - (1920 + 1280), (1200 - 1024) pour le premier moniteur, je viens de mettre le premier moniteur à toutes les valeurs positives 0, (1200 - 1024) et le second à 1280, 0.

Déconnecter Windows puis reconnecter a appliqué les paramètres pour moi. Il est également utile de savoir que cela fonctionne sur Windows Hyper-V Server (je viens de le faire sur 2012 R2, ce qui signifie que ces paramètres fonctionnent toujours sous Windows 8 et 8.1). C’est vraiment utile pour les personnes en dehors de la résolution de l’écran mais qui essaient d’obtenir un PC hôte de style "bare metal" (vous n’avez pratiquement pas besoin de mettre à jour ou de redémarrer) et de travailler uniquement avec des machines virtuelles internes via Remote Desktop (copier depuis une autre machine). ).

Merci à techie007 pour la réponse originale, c’était la clé pour régler tout cela. Si vous marquez cette variante comme utile, n'oubliez pas de "relever" sa réponse et la question aussi.

1
Tony Wall