Який ключ реєстру чи файл Windows визначає, де монітори розміщуються в середовищі з декількома моніторами?


17

У мене є ноутбук з адаптером USB до VGA, який дозволяє мені додати до мого ноутбука третій монітор (другий монітор використовує бортовий слот).

Це добре працювало в Windows Vista - ви можете зайти в налаштування дисплея Windows, і Windows розпізнає третій монітор і дозволить вам перетягнути його відповідно. У Windows 7 третього монітора буквально немає в налаштуваннях дисплея Windows. Драйвер дозволяє відображати третій монітор, але ви не можете рухатись там, де він є. Налаштування дисплея неправильно розміщені щодо інших моїх двох (якщо перетягнути вікна на нього, вони опиняються внизу, коли його слід вирівняти).

Я зателефонував у службу технічної підтримки, і вони сказали, що ще немає драйвера з цією функціональністю для Windows 7. Але ось моя думка. Розміщення монітора все ще дещо схоже на те, де я був у Vista, це лише близько 500 пікселів. Я думаю, що десь є ключ реєстру або файл драйвера, який говорить цьому монітору, де існувати. Якби я міг просто змінити номер і перемістити його на 500 пікселів, він був би в потрібному місці, і мені не потрібно чекати 6 місяців, щоб компанія вийшла з новим драйвером.

Будь-які ідеї?

Відповіді:


8

Перегляньте різні ключі та папки в

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

Зокрема, у найпотаємніших MonXXXXXXXпідпапках повинні бути Attach.RelativeXі Attach.RelativeYзначення, які є розташуванням моніторів по відношенню до пікселя 0,0.

Дивно, коли я перевіряю тут машину Windows 7 з двома моніторами, схоже, не відображається другий монітор. Але моя машина XP показує всі три мої, тому ваш пробіг може відрізнятися.

Якщо нічого іншого - це місце для початку!


Чудова знахідка! Це саме вони ключі, які я шукав. Змінення відносного значення в двох місцях і потім перезапуск розширеного драйвера usb-драйвера змушує його зміщуватися. Тепер ось проблема, що залишилася: Через спосіб налаштування моніторів мені потрібно ввести НЕГАТИВНЕ значення. Як би я це зробив? Позитивне значення ставить лише монітор, який мені потрібен. Ось моя настройка: 2 3 1 Це номери моніторів (1 і 2 торкаються, а три - убік). Зміна значення attach.relativeY робить 3, здається, ще нижчими, я хочу підвищити його.

схоже, форматування не збереглося, але, сподіваємось, ви отримаєте суть - 2 вище 1, а три праворуч від них обох, в центрі між ними. Цифрово вікна розміщують його поруч із монітором 1.

Що відбувається, коли ви намагаєтесь ввести негативне значення? Зрештою, вам, можливо, доведеться встановити сценарій запуску, щоб здійснити коригування під час входу в систему (якщо він не буде триматися самостійно).
Ƭᴇcʜιᴇ007

Ви не можете ввести негативне значення, Windows не дозволить вам. У шістнадцятковій частині реєстру ви можете вводити цифри та букви, а в десятковій частині можна вводити лише числові значення. Це 4 мільярдне число, яке я розмістив, безумовно, працює і дотримується, я просто не впевнений, чому. Можливо, є якийсь код у Windows, який означає, що 429496xxxx позначає від’ємне число. Останні 4 числа співвідносяться з кількістю пікселів, що перевищують мінус.

Sweeeeeeeet ;)
Ƭᴇcʜιᴇ007

27

Для всіх, хто шукає ключ у Windows 7, він знаходиться в одній із папок у:

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

Шукайте Position.cxі Position.cyв кожній з папок; ви повинні відредагувати шістнадцятковий рядок

Двійковий / десятковий / шістнадцятковий перетворювач:

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


3
Як визначити, яка конфігурація є активною?
Адісак

Адісак - Мені було легше просто змінити значення у всіх позиціях.
Артаніс

1
@Adisak Старе питання, але для тих, хто все ще шукає цього, ось що я зробив: Клацніть правою кнопкою миші -> експортуйте вузол конфігурації (про всяк випадок), збережіть його кудись. Видаліть кожен дочірній вузол. Вихід із вікон. Увійдіть знову. Це створить 1 новий елемент, який є поточним / активним.
Рене

Щоб знайти активну конфігурацію, ви можете використовувати MonitorInfoView . Імена конфігурації - це списки всіх ідентифікаторів монітора, до яких приєднані *, ідентифікатори починатимуться зі значень зі стовпця Ключ реєстру в MonitorInfoView.
gronostaj

4

Я б хотів, щоб я знав, чому це працює, але я знаю, що це робить

Щоб змусити монітор переходити вгору (оскільки в реєстрі заборонені елементи заборонені), ви повинні використовувати значення для attach.relativeY, як це: 4294967040

Завдяки цьому форуму за допомогу з'ясувати цю частину - http://www.ureader.com/msg/164488.aspx

Якщо змінити останні 4 цифри цього числа вниз, монітор вийде вниз і навпаки. Це також буде працювати для attach.relativeX. Трохи налаштувавшись, і моє налаштування повернулося до норми.

Кому потрібні функціональні драйвери pshh


і спасибі techie007 за те, що мене вивели на правильний шлях

Солодко, я отримую позначку "правильної відповіді" для вказівки ключа? :)
Ƭᴇcʜιᴇ007

Чи можете ви зробити половину правильної відповіді? lol

Тільки якщо я можу дати вам половину бала за ваше відкрите запитання. :) Мені здається, ви запитували "будь-які ідеї" щодо того, як ви могли це виправити, використовуючи "ключ реєстру чи файл драйвера десь" - я вказав ключ реєстру, який ви потім використовували для його встановлення. Що ще ти хочеш? Кров? :) Я думаю, мені доведеться включити у свою наступну відповідь 32-бітне слово з шістнадцятковим числом уроків. ;)
Ƭᴇcʜιᴇ007

Це тому, що це додатне ціле подання від'ємного цілого числа. Перегляньте доповнення 2, якщо вам цікаво знати, як зобразити від’ємне число, а потім розглядайте біти як непідписане ціле число, щоб отримати правильне вхідне значення.
Едвін Бак

2

Відніміть суму, яку ви хочете зробити негативною, від 4294967296, щоб отримати номер, необхідний для реєстру. Тобто, за 4294967296 - 250 = 4294967046.

Для вас вун ...

Роздратування тут пов’язане з тим, що редактор реєстру не інтерпретує 32 біти як інше, як непідписане десяткове ціле число або шістнадцяткове представлення двійкових даних. Однак, коли Windows отримує ці бінарні дані під час позиціонування дисплеїв, він інтерпретує їх як ціле підписане число. Для того, щоб Windows знала, що 32-бітове ціле число є негативним, він встановлює останній біт у 1 (крайній лівий), а решта бітів інвертовані. Отже -1 матиме двійкове значення 11111111 11111111 11111111 11111111 (hex: FF FF FF FF). Якщо ви переведете це на непідписане десяткове ціле число (як це робить редактор реєстру), ви отримаєте 4 294 967 295. Отже, для наших цілей 0 дорівнює 4,294,967,


1

Замість обчислення негативних значень може бути простіше зрозуміти, якщо ви зберігаєте всі значення позитивними, зробивши логічний 0,0 у фізичному верхньому лівому куті віртуального вікна, який ви б намалювали, якщо намагалися оточити всі монітори. Подумайте, як коли ви рухаєте монітор вгору та вліво, що ви дійсно штовхаєте інших вправо і вниз.

Наприклад, у мене був монітор 1280x1024 та 1920x1200, причому перший менший за замовчуванням верхній правий бік другого, а не нижній лівий від першого, де він розташований фізично (ліворуч) і вирівнюється з (нижній край знаходиться на однаковій висоті , верх нижній звичайно, тому що він не такий високий).

Отже, для початку монітор 1920x1080 був у положенні 0,0, а перший у 1920,0. Замість того, щоб намагатися обчислити мінус - (1920 + 1280), (1200 - 1024) для першого монітора, я просто поставив перший монітор на всі позитивні значення 0, (1200 -1024), а другий на 1280, 0.

Вихід з Windows, а потім вхід у систему із застосованими для мене налаштуваннями. Також корисно знати, що це працює на сервері Windows Hyper-V Server (я щойно робив це на 2012 R2, що означає, що ці налаштування все ще працюють у Windows 8 та 8.1). Це дійсно корисно людям, які не мають налаштувань роздільної здатності екрана, але намагаються досягти хост-ПК у стилі «голий метал» (навряд чи вам доведеться коли-небудь оновлювати чи перезавантажувати) та працювати чисто з віртуальними машинами всередині через віддалений робочий стіл (скопіюйте це з іншої машини ).

Завдяки techie007 за оригінальну відповідь, це було ключовим для вирішення всього цього. Якщо ви позначите цей варіант корисним, не забудьте "відповісти" його відповіддю і на питання також.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.