2015-06-09 2 views
11

Ich verwende Windows 7. Wenn ich einen neuen Monitor anschließen, während der PC läuft, wird der Monitor nicht automatisch erkannt. Ich muss zur Anzeige-> Bildschirmauflösung gehen und auf die Schaltfläche Erkennen klicken, um den Monitor mit der Registrierungskonfiguration zu erkennen.Erkennen Sie alle angeschlossenen Monitore mit Windows-API

Ich bin auf der Suche nach einer Möglichkeit, das gleiche programmgesteuert mithilfe der Windows-API zu tun. Also würde ich gerne ein Programm schreiben, das alle angeschlossenen Monitore erkennt, die die Detect-Taste reproduzieren. Ich habe versucht, ChangeDisplaySettingEx aber mit schlechten Ergebnissen zu verwenden. Irgendwelche Vorschläge?

+0

Vielleicht http://stackoverflow.com/questions/5981520/detect-external-display-being-connected-or-removed-under-windows-7 kann helfen? –

+2

Sie haben schon zu viel Zeit damit verschwendet. Ersetzen Sie einfach den Videoadapter. –

+0

Dieser Code Project Artikel kann hilfreich sein: http://www.codeproject.com/Articles/119168/Hardware-Change-Detection Obwohl ich mit @HansPassant stimme, dass es klingt wie ein Hardwareproblem, dass es nicht einen Versuch wert ist mit einem Software-Fix umgehen! – beercohol

Antwort

1

Keine API-Lösung, aber Sie können MS DevCon Dienstprogramm in der Befehlszeile verwenden, um nach neuer Hardware zu suchen.

https://support.microsoft.com/en-us/kb/311272

es von dieser Seite herunterladen, dann ist dieser gerade von einem cmd-Fenster ausführen:

devcon.exe rescan 

Sie leicht eine .bat oder .cmd-Datei ausführen dies über einen Link erstellen können.

+0

Der Vollständigkeit halber ist es möglich, den Quellcode von devcon https://github.com/Microsoft/Windows-driver-samples zu finden, um dem Projekt nur die benötigte Funktionalität hinzuzufügen, ohne die .bat- oder .cmd-Datei zu verwenden – DOFHandler

0

Sie sollten this lesen, wenn Sie mehr über Display-fähige Apps erfahren möchten.

+0

Wie ist das relevant? – CodeCaster

+0

Wenn eine neue Anzeige verbunden/entfernt wird, sendet Windows die Meldung WM_DISPLAYCHANGE an die App; Ich erinnere mich. – AraneaSerket6848

+0

Ich bin nicht sehr sicher – AraneaSerket6848

1

Nicht wirklich ein WinApi aber versuchen, dieses Dienstprogramm:

C: \ Windows \ System32 \ DisplaySwitch.exe

DisplaySwitch.exe /internal - Switch to Primary only 
DisplaySwitch.exe /external - Switch to Secondary only 
DisplaySwitch.exe /clone - Clone desktop on both screens (Not HDCP compliant!) 
DisplaySwitch.exe /extend - Extend desktop to both screens 

Insbesondere versuchen/erweitern Schalter, sollte es Erkennung intern durchzuführen.

Verwandte Themen