¿Qué clave de registro o archivo de Windows determina dónde se ubican los monitores en un entorno de múltiples monitores?

17

Tengo una computadora portátil con un adaptador USB a VGA que me permite agregar un tercer monitor a mi computadora portátil (el segundo monitor usa la ranura integrada).

Funcionó bien en Windows Vista: puede acceder a la configuración de pantalla de Windows y Windows reconocerá el tercer monitor y le permitirá arrastrarlo en consecuencia. Con Windows 7, el tercer monitor literalmente no está en la configuración de pantalla de Windows. El controlador le permite mostrar el tercer monitor, pero no puede moverse donde está. La configuración de visualización está fuera de lugar en relación con mis otros dos (si arrastra las ventanas hacia ella, terminarán en la parte inferior cuando debería alinearse).

Llamé a soporte técnico y me dijeron que todavía no hay un controlador con esta funcionalidad para Windows 7. Pero aquí está mi presentimiento. La ubicación del monitor sigue siendo algo similar a la que tenía en Vista, está a unos 500 píxeles aproximadamente. Creo que hay una clave de registro o un archivo de controlador en algún lugar que le dice a este monitor dónde debe existir. Si pudiera modificar el número y subirlo 500 píxeles, estaría en el lugar correcto y no tendré que esperar 6 meses para que la compañía presente un nuevo controlador.

¿Algunas ideas?

Garfio
fuente

Respuestas:

8

Echa un vistazo a las diferentes claves y carpetas en

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

Específicamente en las MonXXXXXXXsubcarpetas más internas deberían estar Attach.RelativeXy Attach.RelativeYvalores que son la ubicación de los monitores en relación con el píxel 0,0.

Curiosamente, cuando reviso una máquina con Windows 7 aquí con dos monitores, no parece mostrar el segundo monitor. Pero mi máquina XP muestra los tres míos, por lo que su kilometraje puede variar.

¡Si nada más es un lugar para comenzar!

Ƭᴇcʜιᴇ007
fuente
Gran descubrimiento! Estas son exactamente las llaves que estaba buscando. Si modifica el valor relativo de Y en dos lugares y luego reinicia el controlador usb de escritorio extendido, cambiará. Ahora aquí está el problema restante: debido a la forma en que se configuran los monitores, necesito poner un valor NEGATIVO. ¿Como podría hacerlo? Poner un valor positivo solo pone el monitor que necesito aún más bajo. Aquí está mi configuración: 2 3 1 Esos son los números de monitor (1 y 2 se tocan y tres está a un lado). Cambiar el valor de attach.relativeY hace que 3 parezca ir aún más bajo, quiero aumentarlo.
parece que el formato no se mantuvo allí, pero espero que entiendas lo esencial: 2 está por encima de 1 y tres está a la derecha de ambos, centrados entre los dos. Digitalmente, Windows lo coloca al lado del monitor 1.
¿Qué sucede cuando intentas ingresar un valor negativo? Al final, es posible que tenga que manipular un script de inicio para realizar el ajuste cuando inicie sesión (si no va a quedarse solo).
Ƭᴇcʜιᴇ007
No puede ingresar un valor negativo, Windows no le permitirá. En la parte hexadecimal del registro puede poner números y letras y en la parte decimal solo puede poner valores numéricos. Ese número de 4 mil millones que publiqué definitivamente funciona y se pega, simplemente no estoy seguro de por qué. Tal vez hay algún tipo de código en Windows que significa que el 429496xxxx denota un número negativo. Los últimos 4 números se correlacionan con la cantidad de desplazamiento de píxeles más allá del negativo.
Sweeeeeeeet. ;)
Ƭᴇcʜιᴇ007
27

Para cualquiera que esté buscando la clave en Windows 7, está en una de las carpetas en:

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

Busque Position.cxy Position.cyen cada una de las subcarpetas; tienes que editar la cadena hexadecimal.

Convertidor binario / decimal / hexadecimal:

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

Sean
fuente
3
¿Cómo saber qué configuración es la activa?
Adisak
Adisak: me resultó más fácil cambiar los valores según todas las posiciones.
Artanis
1
@Adisak Antigua pregunta, pero para cualquiera que todavía esté buscando esto, esto es lo que hice: Haga clic derecho -> exportar el nodo de configuración (por si acaso), guárdelo en algún lugar. Eliminar todos los nodos secundarios. Salir de las ventanas. Regístrese nuevamente. Esto creará 1 elemento nuevo que es el actual / activo.
René
Para encontrar la configuración activa, puede usar MonitorInfoView . Los nombres de configuración son listas de todos los identificadores de monitor unidos *, los identificadores comenzarán con valores de la columna Clave de registro en MonitorInfoView.
gronostaj
4

Desearía saber por qué funcionó, pero sé que sí:

Para que el monitor suba (porque el registro no permite los negativos), debe usar valores para attach.relativeY como este: 4294967040

Gracias a este foro por ayudarnos a descubrir esa parte: http://www.ureader.com/msg/164488.aspx

Si cambia los últimos 4 dígitos de ese número hacia abajo, el monitor se cae y viceversa. Esto también funcionará para attach.relativeX. Un pequeño ajuste y mi configuración volvió a la normalidad.

¿Quién necesita controladores funcionales?


fuente
y gracias a techie007 por llevarme por el camino correcto
Dulce, ¿obtengo la marca de 'respuesta correcta' para señalar la clave? :)
Ƭᴇcʜιᴇ007
¿Puedes hacer la mitad de una respuesta correcta? lol
Solo si puedo darte medio punto por tu pregunta abierta. :) Para mí, parece que pidió "alguna idea" sobre cómo podría solucionarlo utilizando "una clave de registro o un archivo de controlador en alguna parte". Le señalé una clave de registro que luego usó para configurarla. ¿Qué más quieres? ¿Sangre? :) Creo que tendré que incluir la negación de lecciones de números hexadecimales de 32 bits en mi próxima respuesta. ;)
Ƭᴇcʜιᴇ007
Esto se debe a que es la representación entera positiva de un entero negativo. Busque el complemento de 2 si está interesado en saber cómo representar el número negativo y luego trate los bits como un entero sin signo para obtener el valor de entrada correcto.
Edwin Buck
2

Reste la cantidad que desea hacer negativa de 4294967296 para obtener el número que necesita para el registro. Es decir, para 4294967296 - 250 = 4294967046.

Para ustedes geeks ...

La molestia aquí se debe al hecho de que el editor del registro no interpreta los 32 bits como algo más que un entero decimal sin signo o una representación hexadecimal de datos binarios. Sin embargo, cuando Windows recupera esos datos binarios cuando coloca sus pantallas, lo interpreta como un entero con signo. Para que Windows sepa que un entero con signo de 32 bits es negativo, establece el último bit en 1 (el más a la izquierda) y el resto de los bits se invierten. Entonces -1 tendrá un valor binario de 11111111 11111111 11111111 11111111 (hexadecimal: FF FF FF FF). Si traduce eso a un entero decimal sin signo (como lo hace el editor del registro), obtendrá 4,294,967,295. Entonces, para nuestros propósitos, 0 equivale a 4,294,967,

Dynamichael
fuente
1

En lugar de calcular valores negativos, puede ser más fácil de entender si mantiene todos los valores positivos al hacer un 0,0 lógico en la esquina superior izquierda física de un cuadro virtual que dibujaría si intentara rodear todos los monitores. Piense como cuando mueve un monitor hacia arriba y hacia la izquierda, que realmente está empujando a los demás hacia la derecha y hacia abajo.

Por ejemplo, tenía un monitor de 1280x1024 y 1920x1200 con el primero más pequeño predeterminado en el lado superior derecho del segundo, no en la parte inferior izquierda del primero donde está posicionado físicamente (izquierda) y alineado con (el borde inferior está a la misma altura , la parte superior es más baja, por supuesto, porque no es tan alta).

Entonces, para comenzar, el segundo monitor de 1920x1080 estaba en la posición 0,0 y el primero en 1920,0. En lugar de tratar de calcular negativo - (1920 + 1280), (1200 - 1024) para el primer monitor, simplemente puse el primer monitor en todos los valores positivos 0, (1200-1024) y el segundo en 1280, 0.

Cerrar la sesión de Windows y luego volver a iniciarla aplicó la configuración por mí. También es útil saber que esto funciona en Windows Hyper-V Server (acabo de hacer esto en 2012 R2, lo que significa que estas configuraciones aún funcionan en Windows 8 y 8.1). Eso es realmente útil para las personas bloqueadas fuera de la configuración de resolución de pantalla, pero que intentan lograr una PC host de estilo "básico" (casi nunca tiene que actualizar o reiniciar) y trabajar exclusivamente con máquinas virtuales dentro a través de Escritorio remoto (copie eso desde otra máquina )

Gracias a techie007 por la respuesta original, esa fue la clave para resolver todo esto. Si marca esta variante como útil, no olvide "subir" su respuesta y la pregunta también.

Tony Wall
fuente