15

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

В Windows Vista все работало нормально - вы можете перейти к настройкам дисплея Windows, и Windows распознает третий монитор и позволит вам соответствующим образом его перетаскивать. В Windows 7 третий монитор буквально отсутствует в настройках дисплея Windows. Драйвер позволяет отображать на третьем мониторе, но вы не можете двигаться туда, где он есть. Настройки дисплея смещены относительно двух других (если вы перетаскиваете окна к нему, они оказываются внизу, когда он должен быть выровнен).

Я позвонил в техподдержку, и они сказали, что пока нет драйвера с такой функциональностью для Windows 7. Но вот моя догадка. Расположение монитора все еще немного похоже на то, что было у меня в Vista, оно примерно на 500 пикселей или около того. Я думаю, что где-то есть либо ключ реестра, либо файл драйвера, который сообщает этому монитору, где он существует. Если бы я мог просто изменить число и увеличить его на 500 пикселей, это было бы в нужном месте, и мне не нужно ждать 6 месяцев, пока компания выпустит новый драйвер.

Есть идеи?

5 ответов5

25

Для всех, кто ищет ключ в Windows 7, он находится в одной из папок:

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

Найдите Position.cx и Position.cy в каждой из подпапок; Вы должны редактировать шестнадцатеричную строку.

Двоичный / десятичный / шестнадцатеричный преобразователь:

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

8

Проверьте различные ключи и папки в

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

В частности, во внутренних MonXXXXXXX должно быть Attach.RelativeX и Attach.RelativeY значения Y, которые представляют собой расположение мониторов относительно пикселя 0,0.

Странно, когда я проверяю компьютер с Windows 7 с двумя мониторами, он, кажется, не показывает второй монитор. Но моя машина XP показывает все три из моих, поэтому ваш пробег может отличаться.

Если ничего другого, это место для начала!

4

Я хотел бы знать, почему это работает, но я знаю, что это делает:

Чтобы заставить монитор работать (поскольку негативы не разрешены реестром), вы должны использовать значения для attach.relativeY, например: 4294967040

Спасибо этому форуму за помощь в выяснении этой части - http://www.ureader.com/msg/164488.aspx

Если вы измените последние 4 цифры этого номера вниз, монитор погаснет, и наоборот. Это также будет работать для attach.relativeX. Немного подправил, и мои настройки вернулись к норме.

Кому нужны функциональные драйверы пшх

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 296, к которому вы можете просто добавить свое отрицательное число, чтобы получить десятичное целое число без знака, которое вам нужно, чтобы редактор реестра сохранил в двоичном виде и чтобы система позже интерпретировала как целое число с отрицательной подписью. ,

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 за оригинальный ответ, это был ключ к решению всего этого. Если вы пометите этот вариант как полезный, не забудьте также "поднять" его ответ и вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .