Estou trabalhando em um aplicativo para meu telefone que automatizará muitos aspectos do meu computador doméstico. Um desses aspectos é alternar entre um work
ambiente e um home
ambiente. A alternância entre os dois consiste principalmente em alterar as configurações do monitor (mas também a saída de som, se possível).
Tenho três monitores conectados à minha máquina e em meu work
ambiente quero que apenas os monitores 1 e 2 estejam ativos... mas no home
ambiente quero que o monitor 3 seja o único monitor ativo.
Tenho lutado para encontrar uma maneira de automatizar isso. Eu tentei algumas ferramentas diferentes, incluindo algumas do pacote NirSoft (MonitorInfoTool e MultiMonitorTool). No entanto, cada ferramenta que encontro parece ter uma falha séria: os IDs não são exclusivos (ou seja, mudam toda vez que altero as configurações do monitor) ou estão totalmente errados.
MonitorInfoTool: Muitas vezes confunde dois dos monitores, afirma que os monitores 1 e 3 estão ativos quando na realidade, 2 e 3 estão ativos (sei que esta não é uma configuração desejada, mas estava mexendo com ela).
MultiMonitorTool: Não possui identificador único. O mais próximo que ele tem são os identificadores \\.\DISPLAYX que são aparentemente atribuídos aleatoriamente quando a configuração do monitor é alterada. Essa ferramenta também possui um recurso de configuração de monitor para carregar/salvar, mas acho que muitas vezes não funciona.
Após algumas pesquisas, parece que este é principalmente um problema do Windows 7. A Microsoft simplesmente não se preocupou em criar uma maneira fácil de identificar monitores para outros programas.
Alguém conseguiu alternar com segurança entre as configurações do monitor com o Windows 7? Alguém conseguiu mapear de forma confiável algum tipo de identificador para alternar (ou seja, \\.\DISPLAYX id) para um nome legível (ou semi-legível) no Windows 7?