Quale chiave di registro o file di Windows determina la posizione dei monitor in un ambiente con più monitor?


17

Ho un laptop con un adattatore da USB a VGA che mi consente di aggiungere un terzo monitor al mio laptop (il secondo monitor utilizza lo slot integrato).

Ha funzionato bene su Windows Vista: potresti andare nelle impostazioni di visualizzazione di Windows e Windows riconoscerebbe il terzo monitor e ti lascerebbe trascinare di conseguenza. Con Windows 7, il terzo monitor non è letteralmente presente nelle impostazioni di visualizzazione di Windows. Il driver ti consente di visualizzare sul terzo monitor, ma non puoi spostarti dove si trova. Le impostazioni di visualizzazione sono mal posizionate rispetto alle mie altre due (se trascini le finestre su di essa, finiscono in fondo quando dovrebbe essere allineato).

Ho chiamato il supporto tecnico e mi hanno detto che non esiste ancora un driver con questa funzionalità per Windows 7. Ma ecco il mio sospetto. Il posizionamento del monitor è ancora in qualche modo simile a quello che avevo su Vista, è appena fuori di circa 500 pixel o giù di lì. Penso che ci sia una chiave di registro o un file del driver da qualche parte che sta dicendo a questo monitor dove esiste. Se solo potessi modificare il numero e spostarlo di 500 pixel, sarebbe nel posto giusto e non dovrò aspettare 6 mesi per far uscire l'azienda con un nuovo driver.

Qualche idea?

Risposte:


8

Scopri le varie chiavi e cartelle in

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

In particolare nelle MonXXXXXXXsottocartelle più interne dovrebbero essere Attach.RelativeXe Attach.RelativeYvalori che sono la posizione dei monitor in relazione al pixel 0,0.

Stranamente quando controllo una macchina Windows 7 qui con due monitor, non sembra mostrare il secondo monitor. Ma la mia macchina XP mostra tutte e tre le mie, quindi il tuo chilometraggio può variare.

Se non altro è un punto di partenza!


Grande scoperta! Sono esattamente le chiavi che stavo cercando. La modifica del valore relativoY in due punti e quindi il riavvio del driver USB desktop esteso causa lo spostamento. Ora ecco il problema rimanente: a causa della modalità di configurazione dei monitor, devo inserire un valore NEGATIVO. Come potrei farlo? Inserendo un valore positivo, il monitor di cui ho bisogno è ancora più basso. Ecco la mia configurazione: 2 3 1 Questi sono i numeri del monitor (1 e 2 si toccano e tre sono a lato). Cambiando il valore attach.relativeY, 3 sembra andare ancora più in basso, voglio aumentarlo.

sembra che la formattazione non sia rimasta lì, ma si spera che tu ne abbia un'idea - 2 è sopra 1 e tre è a destra di entrambi, centrati tra i due. Digitalmente, Windows lo posiziona accanto al monitor 1.

Cosa succede quando provi a inserire un valore negativo? Alla fine, potrebbe essere necessario creare uno script di avvio per apportare le modifiche al momento del login (se non si attaccherà al proprio).
Ƭᴇcʜιᴇ007,

Non puoi inserire un valore negativo, Windows non te lo consente. Nella parte esadecimale del registro è possibile inserire numeri e lettere e nella parte decimale è possibile inserire solo valori numerici. Quel numero di 4 miliardi che ho pubblicato sicuramente funziona e si attacca, non sono sicuro del perché. Forse c'è una sorta di codice in Windows che significa che il 429496xxxx indica un numero negativo. Gli ultimi 4 numeri sono correlati alla quantità di spostamento del pixel oltre il negativo.

Sweeeeeeeet. ;)
Ƭᴇcʜιᴇ007,

27

Per chiunque cerchi la chiave in Windows 7, si trova in una delle cartelle in:

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

Cerca Position.cxe Position.cyin ciascuna delle sottocartelle; devi modificare la stringa esadecimale.

Convertitore binario / decimale / esadecimale:

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


3
Come si dice quale configurazione è attiva?
Adisak,

Adisak - Ho trovato più semplice cambiare semplicemente i valori in tutte le posizioni.
Artanis,

1
@Adisak Vecchia domanda, ma per chiunque sia ancora alla ricerca di questo, ecco cosa ho fatto: tasto destro -> esporta il nodo di configurazione (per ogni evenienza), salvalo da qualche parte. Elimina ogni singolo nodo figlio. Esci da Windows. Accedi di nuovo. Questo creerà 1 nuovo elemento che è quello corrente / attivo.
René,

Per trovare la configurazione attiva è possibile utilizzare MonitorInfoView . I nomi di configurazione sono elenchi di tutti gli identificatori di monitoraggio uniti *, gli identificatori inizieranno con i valori dalla colonna Chiave di registro in MonitorInfoView.
gronostaj,

4

Vorrei sapere perché ha funzionato, ma so che lo fa:

Per far salire il monitor (perché i negativi non sono ammessi dal registro), è necessario utilizzare valori per attach.relativeY in questo modo: 4294967040

Grazie a questo forum per aiutare a capire quella parte - http://www.ureader.com/msg/164488.aspx

Se si modificano le ultime 4 cifre di quel numero in basso, il monitor si abbassa e viceversa. Questo funzionerà anche per attach.relativeX. Un po 'di modifiche e il mio setup è tornato alla normalità.

Chi ha bisogno di driver funzionali pshh


e grazie a techie007 per avermi portato sulla strada giusta

Dolcezza, ottengo il segno "risposta corretta" per indicare la chiave? :)
Ƭᴇcʜιᴇ007,

Puoi fare mezza risposta corretta? lol

Solo se posso darti mezzo punto per la tua domanda aperta. :) A me sembra che tu abbia chiesto "eventuali idee" su come poterlo risolvere usando "una chiave di registro o un file del driver da qualche parte" - ho indicato una chiave di registro che poi hai usato per impostarla. Cosa volete di più? Sangue? :) Immagino che dovrò includere lezioni di numeri esadecimali di parole a 32 bit neganti nella mia prossima risposta. ;)
Ƭᴇcʜιᴇ007,

Questo perché è la rappresentazione intera positiva di un numero intero negativo. Cerca il complemento di 2 se sei interessato a sapere come rappresentare il numero negativo, quindi tratta i bit come un numero intero senza segno per ottenere il valore di input corretto.
Edwin Buck

2

Sottrarre l'importo che si desidera rendere negativo da 4294967296 per ottenere il numero necessario per il registro. Vale a dire, per 4294967296 - 250 = 4294967046.

Per voi geek ...

Il fastidio qui è dovuto al fatto che l'editor del registro non interpreta i 32 bit come qualcosa di diverso da un intero decimale senza segno o da una rappresentazione esadecimale di dati binari. Tuttavia, quando Windows recupera i dati binari durante il posizionamento dei display, li interpreta come un intero con segno. Affinché Windows sappia che un numero intero con segno a 32 bit è negativo, imposta l'ultimo bit su 1 (all'estrema sinistra) e il resto dei bit viene invertito. Quindi -1 avrà un valore binario di 11111111 11111111 11111111 11111111 (esadecimale: FF FF FF FF). Se lo traduci in un numero intero decimale senza segno (come fa l'editor del registro), otterrai 4.294.967.295. Quindi, per i nostri scopi, 0 equivale a 4.294.967,


1

Invece di calcolare valori negativi, potrebbe essere più facile capire se si mantengono tutti i valori positivi creando uno 0,0 logico nella parte superiore sinistra fisica di una scatola virtuale che si trarrebbe se si provasse a circondare tutti i monitor. Pensa come quando sposti un monitor verso l'alto e verso sinistra, spingendo davvero gli altri verso destra e verso il basso.

Ad esempio, avevo monitor 1280x1024 e 1920x1200 con il primo più piccolo predefinito in default nella parte in alto a destra del secondo, non in basso a sinistra del primo in cui è posizionato fisicamente (a sinistra) e allineato con (il bordo inferiore è alla stessa altezza , la parte superiore è ovviamente più bassa perché non è così alta).

Quindi, per iniziare con il secondo monitor 1920x1080 era in posizione 0,0 e il primo a 1920,0. Invece di provare a calcolare il negativo - (1920 + 1280), (1200 - 1024) per il primo monitor ho appena messo il primo monitor a tutti i valori positivi 0, (1200-1024) e il secondo a 1280, 0.

Disconnettersi da Windows, quindi riconnettersi ha applicato le impostazioni per me. È anche utile sapere che funziona su Windows Hyper-V Server (l'ho appena fatto su 2012 R2, il che significa che queste impostazioni funzionano ancora su Windows 8 e 8.1). Questo è davvero utile per le persone bloccate al di fuori delle impostazioni di risoluzione dello schermo ma cercando di ottenere un PC host in stile "bare metal" (non è quasi mai necessario aggiornare o riavviare) e lavorare esclusivamente con macchine virtuali all'interno tramite Desktop remoto (copiarlo da un'altra macchina ).

Grazie a techie007 per la risposta originale, questa è stata la chiave per risolvere tutto questo. Se si contrassegna questa variante come utile, non dimenticare di "aumentare" la sua risposta e anche la domanda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.