Gibt es eine Möglichkeit festzustellen, ob ein Monitor angeschlossen ist?

9

Ich habe eine benutzerdefinierte Anwendung in C ++ geschrieben, die die Auflösung und andere Einstellungen auf einem Monitor steuert, der an ein eingebettetes System angeschlossen ist. Manchmal wird das System kopflos gebootet und läuft über VNC, kann aber später einen Monitor einstecken (post-boot). Wenn dies passiert, wird dem Monitor kein Video zugeführt, bis der Monitor aktiviert ist. Ich habe herausgefunden, dass der Aufruf von "displayswitch / clone" den Monitor hochbringt, aber ich muss wissen, wann der Monitor angeschlossen ist. Ich habe einen Timer, der alle 5 Sekunden läuft und nach dem Monitor sucht, aber ich brauche einen API-Aufruf, der mir sagen kann, ob der Monitor angeschlossen ist.

Hier ist ein bisschen psudocode, um zu beschreiben, was ich mache (was ausgeführt wird, wenn der Timer alle 5 Sekunden abläuft).

%Vor%

Ich habe GetSystemMetrics(SM_CMONITORS) versucht, die Anzahl der Monitore zurückzugeben, aber es gibt 1 zurück, wenn der Monitor verbunden ist oder nicht. Irgendwelche anderen Ideen?

Danke!

    
martinarcher 11.01.2013, 21:06
quelle

1 Antwort

1

Probieren Sie den folgenden Code

aus %Vor%

Dies gibt true zurück, wenn Windows ein Anzeigegerät mit dem Index (AKA identity) 0 identifiziert (dies wird von der Displaysteuerung intern verwendet). Andernfalls wird false false zurückgegeben. Indem Sie also den ersten möglichen Index (den ich als Standardargument markiert habe) überprüfen, können Sie herausfinden, ob any Anzeigegerät verbunden ist (oder zumindest von Windows identifiziert wurde, was im Wesentlichen das ist, was Sie suchen für).

    
Yam Marcovic 17.01.2013 11:15
quelle