vários monitores sempre abrem processo em tela particular

2

Eu sei que o Windows 7 tem alguma funcionalidade interna que controla a abertura de um aplicativo em um monitor específico. Isso prova ser ótimo quando se trabalha apenas com dois monitores. Abra o cromo no monitor 1, arraste-o para o monitor 2, feche o cromo, abra o cromo e ele será aberto no monitor 2.

O meu problema é que tenho 4 peças de software em execução numa estação de visualização de monitor quádruplo e os meus resultados são bastante misturados com o windows 7, lembrando-se de qual vai para onde.

Correndo o risco de fazer uma pergunta sobre "compras", existe um utilitário de terceiros que faz um trabalho melhor nessa tarefa específica?

Eu preciso ser capaz de reiniciar a máquina e meus 4 aplicativos para sempre iniciar no mesmo lugar sem qualquer interação do usuário. Agora meu teste tem isso trabalhando apenas 7/10 vezes como desejado. Isso seria aceitável se não fosse pelas instalações do cliente.

Minha única outra opção neste momento é escrever um aplicativo de console para iniciar os processos, mas não tenho certeza se ele suporta um deslocamento de coordenadas x / y nas sobrecargas process.start.

Obrigado pela leitura.

    
por TWood 22.04.2014 / 23:57

2 respostas

2

Pode ter algo a ver com a ordem de ligar os dispositivos. Certifique-se de ligar todas as telas antes que o computador seja iniciado. Se algumas telas forem ativadas após a inicialização do Windows, o Windows poderá redefinir o local padrão em que cada aplicativo deve iniciar para garantir que ele não comece fora dos limites. Se você quiser ter certeza de que os aplicativos sempre começarão na tela da direita, o melhor a fazer é criar um inicializador, mas todas as telas devem estar ativadas.

    
por 23.04.2014 / 02:36
0

Eu fiz uma pequena pesquisa ontem à noite e tenho algum código viável para usar em um aplicativo de console

sFileName é o nome do processo que é obtido do banco de dados

as propriedades me.xcoord e me.ycoord são calculadas com base em qual processo sFileName está sendo iniciado.

 Dim myExe As New Process
 myExe.StartInfo.FileName = String.Format("{0}{1}{2}", My.Settings.programsdirectory, sFileName, My.Settings.buildextension)
 myExe.StartInfo.UseShellExecute = True
 myExe.StartInfo.Arguments = String.Format("{0} {1}", Me.XCOORD, Me.YCOORD)
 Try
     Process.Start(myExe.StartInfo.FileName, myExe.StartInfo.Arguments)
 Catch ex As Exception
     ApplicationInfo.ExceptionHandler(ex)
 End Try
    
por 23.04.2014 / 15:13