Use um arquivo de lote para controlar a posição do monitor?

1

O Windows 10 tem uma maneira de personalizar suas configurações de exibição com a ordem física de seus vários monitores; nas imagens abaixo, você verá o que quero dizer, se ainda não souber. Eu quero usar um arquivo de lote ou outro programa para alternar entre as duas ordens de monitor abaixo. Eu olhei em volta e não consegui encontrar nenhuma informação sobre isso. Eu quero que o arquivo / programa em lote alterne entre essas duas configurações:

Monitore a ordem da esquerda para a direita 2-1-3

Monitore a ordem da esquerda para a direita 3-2-1

Se você encontrou algum programa capaz de realizar isso com o clique de um botão, por favor, me ligue.

contexto: Eu jogo um jogo chamado Counter-Strike: Global Offensive (CSGO). Eu corro o jogo com uma resolução de 1280x1024 esticada em um monitor de 1920x1080 que está no lado esquerdo da minha configuração de 3 monitores. Executar um jogo em uma resolução mais baixa do que a que normalmente uso o monitor faz com que as janelas dos outros monitores sejam deslocadas para compensar a perda de imóveis. A única solução que parece ser para esse fenômeno é ter o monitor do jogo no lado direito da configuração, e não posso movê-lo para lá fisicamente. Isso significa que o modo como meu mouse se move pelos monitores não é fisicamente correto e quero que esteja correto.

Esta imagem explica melhor do que isso ^

    
por rookr 28.06.2016 / 07:48

2 respostas

1

Acabamos descobrindo isso graças a Curtis . Eu usei o Display Changer para fazer com que os displays mudem. Os arquivos em lote chamam

Eu escrevi um script python que faz dois arquivos em lote e decide quais executar com base no número em state.txt.

    #matthew blaire
    #6/29/2016
    import os
    from subprocess import call

    userpath = os.path.expanduser("~/Documents")
    filepath = userpath + "/csgo monitor changer"
    normalpath = filepath + "/normal.bat"
    statepath = filepath + "/state.txt"
    csgopath = filepath + "/csgo.bat"
    try:
            ProgramFilesPath = os.path.expandvars("%PROGRAMFILES(X86)%")
    except:
            ProgramFilesPath = os.path.expandvars("%PROGRAMFILES%")
    ProgramFilesPath = ProgramFilesPath + "\12noon Display Changer\dc64cmd.exe\""

    if not os.path.exists(filepath): #checks if the filepath exists
            os.makedirs(filepath) #makes it if it doesn't exist already, also makes the files below if they don't already exist

            state = open(statepath, "w")
            state.write("0")
            state.close()

            csgo = open(csgopath, "w")
            csgo.write("\"" + ProgramFilesPath + " -monitor=\"\\.\DISPLAY3\" -more -lx=-1920\n")
            csgo.write("\"" + ProgramFilesPath + " -monitor=\"\\.\DISPLAY2\" -apply -lx=-3840\n")
            csgo.close()

            normal = open(normalpath, "w")
            normal.write("\"" + ProgramFilesPath + " -monitor=\"\\.\DISPLAY2\" -more -lx=1920\n")
            normal.write("\"" + ProgramFilesPath + " -monitor=\"\\.\DISPLAY3\" -apply -lx=3840\n")
            normal.close()

    state = open(statepath, "r")
    if state.read() == "0":
            state.close()
            state = open(statepath, "w")
            call(normalpath)
            state.write("1")

    else:
            state.close()
            state = open(statepath, "w")
            call(csgopath)
            state.write("0")
    state.close()

Os scripts em lote:

csgo.bat:

"C:\Program Files (x86)noon Display Changer\dc64cmd.exe" -monitor="\.\DISPLAY3" -more -lx=-1920
"C:\Program Files (x86)noon Display Changer\dc64cmd.exe" -monitor="\.\DISPLAY2" -apply -lx=-3840

normal.bat:

"C:\Program Files (x86)noon Display Changer\dc64cmd.exe" -monitor="\.\DISPLAY2" -more -lx=1920
"C:\Program Files (x86)noon Display Changer\dc64cmd.exe" -monitor="\.\DISPLAY3" -apply -lx=3840

state.txt:

0 or 1 here
    
por 30.06.2016 / 06:55
0

Você pode fazer isso usando o "Modificador de exibição" de aqui . Você vai querer olhar para o -left | -right | -top | -bottom | acima | -below .

Eu peguei essa resposta de uma pergunta semelhante: Mude o arranjo de exibição via linha de lote / comando no Windows 7 se não funcionar, as outras respostas que você pode querer analisar.

    
por 29.06.2016 / 05:44