Stiamo scrivendo un programma che deve essere in grado di inviare le impostazioni a monitor specifici, richiedendoci di avere identificatori univoci per ciascun dispositivo di visualizzazione. Finora, il meglio che posso ottenere è interrogare un handle sulla struttura DEVMODE restituita da EnumDisplayDevices e vedere se il nome DISPLAY_DEVICE restituito contiene "DISPLAY1" o "DISPLAY2" (supportiamo solo fino a due monitor con questo software e il deviceName il campo della struttura DISPLAY_DEVICE è nella forma di \. \ DISPLAYx dove x è un numero naturale, minimo di 1).In che modo Windows assegna i nomi dei dispositivi di visualizzazione? (ad es. \. DISPLAY1) e determinare le porte di visualizzazione?
Il mio problema è che se qualcuno applica le impostazioni da un terminale a un altro e dice "apporta tutte le mie impostazioni da DISPLAY1 e tutte le mie impostazioni dal mio DISPLAY2 e le applico su DISPLAY1 e DISPLAY2 di un altro terminale", applica le impostazioni ai monitor collegati alle porte corrispondenti? Per quanto ne so, se è collegato un solo monitor, a quel monitor viene assegnato il nome \. \ DISPLAY1 e, se sono collegati due, il dispositivo di visualizzazione collegato tramite DVI è \. \ DISPLAY1 e il dispositivo su VGA è \. \ DISPLAY2.
Ho provato a scollegare i monitor uno alla volta, ricollegandoli in diversi ordini, riavviando, riavviando con solo uno collegato, quindi collegando un secondo, ecc. Ecc., E sembra assegnarli sempre in questo modo. Non riesco a farlo assegnare loro i nomi opposti. Se questo è il caso, allora dovremmo essere OK.
In alternativa, se qualcuno conosce un modo per determinare a livello di codice quale porta a cui è collegato un monitor (DVI o VGA ecc.) Utilizzando le chiamate MSDN, ciò sarebbe ancora più utile. Ho praticamente esaurito tutte le opzioni a cui posso pensare per risolvere questo problema.
Fondamentalmente, sto chiedendo, sono corretto nelle mie ipotesi su come Windows 7 assegna i nomi ai display? Se no, come è fatto? C'è un modo per cambiarlo? Se é cosi, come? C'è un modo per determinare la porta a cui è collegato un monitor?
A proposito, questa applicazione è scritta in C++ utilizzando Qt, se questo è importante.
Grazie.
-Alex alias LeapDayWilliam
Mi sembra esilarante che non ci sia documentazione su questo e nessuno sembra conoscere la risposta, ma apprezzo tutte le opinioni. – LeapDayWilliam