Pracuję nad aplikacją na telefonie, która zautomatyzuje wiele aspektów mojego domowego komputera. Jednym z takich aspektów jest przełączanie między work
środowiskiem a home
środowiskiem. Przełączanie między nimi polega przede wszystkim na zmianie konfiguracji monitora (ale także na wyjściu dźwięku, jeśli to możliwe).
Mam trzy monitory podłączone do mojego komputera i w moim work
otoczeniu chcę, aby tylko monitory 1 i 2 były aktywne ... ale w home
środowisku chcę, aby monitor 3 był jedynym aktywnym monitorem.
Z trudem znajdowałem sposób na zautomatyzowanie tego. Wypróbowałem kilka różnych narzędzi, w tym kilka z pakietu NirSoft (MonitorInfoTool i MultiMonitorTool). Jednak każde narzędzie, które znalazłem, ma jedną poważną wadę: identyfikatory albo nie są unikalne (tj. Zmieniają się za każdym razem, gdy zmieniam konfigurację monitora), albo są całkowicie błędne.
MonitorInfoTool: Często mylą dwa monitory, stwierdzają, że monitory 1 i 3 są aktywne, podczas gdy w rzeczywistości aktywne są 2 i 3 (wiem, że nie jest to pożądana konfiguracja, ale miałem z tym problem).
MultiMonitorTool: Nie ma unikalnego identyfikatora. Najbliżej ma identyfikatory \\. \ DISPLAYX, które pozornie są losowo przypisywane po zmianie konfiguracji monitora. To narzędzie ma również funkcję konfiguracji ładowania / zapisywania monitora, ale okazuje się, że często nie działa.
Po niektórych badaniach wydaje się, że jest to przede wszystkim problem z Windows 7. Microsoft po prostu nie zadał sobie trudu, aby stworzyć łatwy sposób identyfikacji monitorów dla innych programów.
Czy ktoś był w stanie niezawodnie przełączać się między konfiguracjami monitorów w systemie Windows 7? Czy ktoś był w stanie niezawodnie odwzorować jakiś identyfikator służący do przełączania (np. \\. \ DISPLAYX id) na czytelną dla człowieka (lub częściowo odczytywalną) nazwę w systemie Windows 7?