Welcher Registrierungsschlüssel oder welche Windows-Datei bestimmt, wo Monitore in einer Umgebung mit mehreren Monitoren platziert werden?

17

Ich habe einen Laptop mit einem USB-zu-VGA-Adapter , mit dem ich meinem Laptop einen dritten Monitor hinzufügen kann (der zweite Monitor verwendet den integrierten Steckplatz).

Unter Windows Vista hat es einwandfrei funktioniert - Sie können die Anzeigeeinstellungen von Windows aufrufen, und Windows erkennt den dritten Monitor und lässt Sie ihn entsprechend verschieben. Unter Windows 7 ist der dritte Monitor in den Anzeigeeinstellungen von Windows buchstäblich nicht vorhanden. Der Treiber ermöglicht es Ihnen, auf dem dritten Monitor anzuzeigen, aber Sie können sich nicht bewegen, wo es ist. Die Anzeigeeinstellungen sind relativ zu meinen beiden anderen falsch positioniert (wenn Sie Fenster darauf ziehen, landen sie am unteren Rand, wenn sie ausgerichtet werden sollen).

Ich rief den technischen Support an und sie sagten, dass es für Windows 7 noch keinen Treiber mit dieser Funktionalität gibt. Aber hier ist meine Vermutung. Die Platzierung des Monitors ist immer noch etwas ähnlich wie bei Vista, nur ungefähr 500 Pixel oder so. Ich denke, dass es irgendwo einen Registrierungsschlüssel oder eine Treiberdatei gibt, die diesem Monitor sagt, wo er existieren soll. Wenn ich die Zahl nur ändern und um 500 Pixel nach oben verschieben könnte, wäre sie an der richtigen Stelle und ich müsste nicht sechs Monate warten, bis das Unternehmen einen neuen Treiber herausbringt.

Irgendwelche Ideen?

Gaff
quelle

Antworten:

8

Überprüfen Sie die verschiedenen Schlüssel und Ordner in

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

Speziell in den innersten MonXXXXXXXUnterordnern sollten sich Werte befinden Attach.RelativeXund Attach.RelativeYwelche die Position der Monitore in Bezug auf Pixel 0,0 sind.

Merkwürdigerweise wird der zweite Monitor nicht angezeigt, wenn ich hier einen Windows 7-Computer mit zwei Monitoren überprüfe. Mein XP-Computer zeigt jedoch alle drei von mir an, sodass Ihre Laufleistung variieren kann.

Wenn nichts anderes ist es ein Ort, an dem man anfangen kann!

ƬᴇcƬᴇιʜ007
quelle
Toller Fund! Das sind genau die Schlüssel, nach denen ich gesucht habe. Wenn Sie den relativen Y-Wert an zwei Stellen ändern und dann den erweiterten Desktop-USB-Treiber neu starten, wird er verschoben. Hier ist das verbleibende Problem: Aufgrund der Konfiguration der Monitore muss ein NEGATIVER Wert eingegeben werden. Wie würde ich das machen? Wenn Sie einen positiven Wert eingeben, wird der von mir benötigte Monitor nur noch niedriger. Hier ist mein Setup: 2 3 1 Das sind die Monitornummern (1 und 2 berühren sich und drei sind seitlich weg). Wenn Sie den Wert für attach.relativeY ändern, wird 3 scheinbar noch niedriger. Ich möchte ihn erhöhen.
Es sieht so aus, als ob die Formatierung dort nicht beibehalten wurde, aber hoffentlich erhalten Sie das Wesentliche - 2 liegt über 1 und drei befindet sich rechts von beiden, zentriert zwischen den beiden. Digital platziert Windows es neben Monitor 1.
Was passiert, wenn Sie versuchen, einen negativen Wert einzugeben? Am Ende müssen Sie möglicherweise ein Startskript manipulieren, um die Anpassung vorzunehmen, wenn Sie sich anmelden (wenn es nicht von alleine bleibt).
Donnerstag,
Sie können keinen negativen Wert eingeben, Windows lässt Sie nicht zu. Im hexadezimalen Teil der Registrierung können Sie Zahlen und Buchstaben und im dezimalen Teil nur numerische Werte eingeben. Die 4-Milliarden-Nummer, die ich gepostet habe, funktioniert definitiv, und ich bin mir nicht sicher, warum. Vielleicht gibt es eine Art Code in Windows, der bedeutet, dass die 429496xxxx eine negative Zahl angibt. Die letzten 4 Zahlen entsprechen dem Betrag der Pixelverschiebung nach dem Negativ.
Sweeeeeeeet. ;)
ƬᴇcƬᴇιʜ007
27

Für alle, die unter Windows 7 nach dem Schlüssel suchen, befindet er sich in einem der folgenden Ordner:

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

Suchen Sie nach Position.cxund Position.cyin jedem der Unterordner. Sie müssen die Hex-Zeichenfolge bearbeiten.

Binär / Dezimal / Hexadezimal-Konverter:

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

Sean
quelle
3
Woran erkennt man, welche Konfiguration aktiv ist?
Adisak
Adisak - Ich fand es einfacher, nur die entsprechenden Werte in allen Positionen zu ändern.
Artanis
1
@Adisak Alte Frage, aber für alle, die noch danach suchen, hier ist, was ich getan habe: Rechtsklick -> Exportiere den Konfigurationsknoten (nur für den Fall), speichere ihn irgendwo. Löschen Sie jeden einzelnen untergeordneten Knoten. Aus Windows abmelden. Melden Sie sich erneut an. Dadurch wird 1 neues Element erstellt, das das aktuelle / aktive ist.
René
Um die aktive Konfiguration zu finden, können Sie MonitorInfoView verwenden . Konfigurationsnamen sind Listen aller Monitor- IDs, mit denen eine Verknüpfung besteht. IDs *beginnen mit Werten aus der Registrierungsschlüsselspalte in MonitorInfoView.
Gronostaj
4

Ich wünschte, ich wüsste, warum das funktioniert, aber ich weiß, dass es funktioniert:

Damit der Monitor UP wird (da Negative von der Registrierung nicht zugelassen werden), müssen Sie Werte für attach.relativeY wie diese verwenden: 4294967040

Vielen Dank an dieses Forum, das Ihnen dabei geholfen hat, diesen Teil herauszufinden - http://www.ureader.com/msg/164488.aspx

Wenn Sie die letzten 4 Stellen dieser Zahl nach unten ändern, geht der Monitor aus und umgekehrt. Dies funktioniert auch für attach.relativeX. Ein bisschen zwicken und mein Setup war wieder normal.

Wer braucht funktionierende Fahrer pshh


quelle
und danke an techie007, dass du mich auf den richtigen Weg gebracht
Süß, bekomme ich die richtige Antwortmarke, um auf den Schlüssel hinzuweisen? :)
ƬᴇcƬᴇιʜ007
Kannst du eine halbe richtige Antwort machen? lol
Nur wenn ich Ihnen einen halben Punkt für Ihre offene Frage geben kann. :) Mir scheint, Sie haben nach "Ideen" gefragt, wie Sie das Problem beheben können, indem Sie "irgendwo einen Registrierungsschlüssel oder eine Treiberdatei" verwenden. Ich habe auf einen Registrierungsschlüssel hingewiesen, mit dem Sie ihn dann festgelegt haben. Was willst du noch? Blut? :) Ich denke, ich muss das Negieren von 32-Bit-Hexadezimalzahlen in meine nächste Antwort einbeziehen. ;)
ƬᴇcƬᴇιʜ007
Dies liegt daran, dass es sich um die positive Ganzzahldarstellung einer negativen Ganzzahl handelt. Suchen Sie nach dem 2er-Komplement, wenn Sie wissen möchten, wie die negative Zahl dargestellt wird, und behandeln Sie die Bits dann als vorzeichenlose Ganzzahl, um den richtigen Eingabewert zu erhalten.
Edwin Buck
2

Subtrahieren Sie den Betrag, den Sie negativ machen möchten, von 4294967296, um die Nummer zu erhalten, die Sie für die Registrierung benötigen. Dh für 4294967296 - 250 = 4294967046.

Für Sie Aussenseiter ...

Das Ärgernis hier ist auf die Tatsache zurückzuführen, dass der Registrierungseditor die 32-Bit-Werte nicht als vorzeichenlose Dezimalzahlen oder hexadezimale Darstellungen von Binärdaten interpretiert. Wenn Windows diese Binärdaten jedoch beim Positionieren Ihrer Anzeigen abruft, interpretiert es sie als eine Ganzzahl mit Vorzeichen. Damit Windows erkennt, dass eine 32-Bit-Ganzzahl mit Vorzeichen negativ ist, wird das letzte Bit auf 1 (ganz links) gesetzt und die restlichen Bits werden invertiert. -1 hat also einen Binärwert von 11111111 11111111 11111111 11111111 (hex: FF FF FF FF). Wenn Sie das in eine vorzeichenlose Dezimalzahl übersetzen (wie es der Registrierungseditor tut), erhalten Sie 4.294.967.295. Für unsere Zwecke entspricht also 0 4.294.967,

dynamichael
quelle
1

Anstatt negative Werte zu berechnen, ist es möglicherweise einfacher zu verstehen, wenn Sie alle Werte positiv halten, indem Sie oben links in einer virtuellen Box, die Sie zeichnen würden, wenn Sie versuchen würden, alle Monitore zu umgeben, ein logisches 0,0 setzen. Denken Sie, wenn Sie einen Monitor nach oben und links bewegen, dass Sie die anderen wirklich nach rechts und unten schieben.

Zum Beispiel hatte ich einen 1280x1024- und einen 1920x1200-Monitor, wobei der erste kleinere standardmäßig rechts oben auf dem zweiten und nicht links unten auf dem ersten war, wo er physisch positioniert (links) und ausgerichtet ist (die untere Kante befindet sich auf derselben Höhe) ist die Spitze natürlich niedriger, weil sie nicht so hoch ist).

Der zweite 1920x1080-Monitor befand sich also zunächst auf Position 0,0 und der erste auf Position 1920,0. Anstatt zu versuchen, negativ - (1920 + 1280), (1200 - 1024) für den ersten Monitor zu berechnen, habe ich einfach den ersten Monitor auf alle positiven Werte 0, (1200 - 1024) und den zweiten auf 1280, 0 gesetzt.

Beim Abmelden von Windows und erneuten Anmelden wurden die Einstellungen für mich übernommen. Es ist auch nützlich zu wissen, dass dies auf Windows Hyper-V Server funktioniert (ich habe dies gerade auf 2012 R2 getan, was bedeutet, dass diese Einstellungen immer noch in Windows 8 und 8.1 funktionieren). Dies ist sehr nützlich für Personen, die nicht über die Bildschirmauflösung verfügen, aber versuchen, einen "Bare-Metal" -Host-PC zu erhalten (Sie müssen selten aktualisieren oder neu starten) und ausschließlich mit virtuellen Maschinen über Remotedesktop arbeiten (kopieren Sie diese von einer anderen Maschine) ).

Vielen Dank an techie007 für die ursprüngliche Antwort, das war der Schlüssel, um all dies zu klären. Wenn Sie diese Variante als nützlich markieren, vergessen Sie nicht, die Antwort und die Frage zu "erhöhen".

Tony Wall
quelle