Troca de desktops entre monitores (windows)

3

Eu quero poder trocar a área de trabalho no monitor 1 com o monitor 2.

"Qual é a melhor maneira de trocar a parte da área de trabalho que é visível no monitor 1 com a parte da área de trabalho que é visível no monitor 2."

Windows 7 64 / nVidia.

Trocar

Desktop-A -> Monitor-1
Desktop-B -> Monitor-2

-toggle-

Desktop-A -> Monitor-2
Desktop-B -> Monitor-1

Eu achei que era assim que os desktops virtuais funcionavam! As soluções que encontrei usando estendem a área de trabalho em ambos os monitores ou mantêm as áreas de trabalho de cada monitores separadas, onde você não pode exibir o Monitor-1 / Desktop-A no Monitor-2.

Clone

Desktop-A -> Monitor-1
Desktop-A -> Monitor-2

-toggle-

Desktop-B -> Monitor-1
Desktop-B -> Monitor-2

Eu olhei para estes Gerenciador de janelas real, DisplayFusion, VirtuaWin, GiMeSpace, NirCmd, Dexpot, Finestra, mDesktop, e muito mais ... eles podem mover uma janela por vez e até mesmo especificar em qual monitor uma janela deve se abrir, mas eles não têm como trocar desktops inteiros.

Eu poderia escrever um AHK para mover as janelas para mim, mas tenho certeza de que haverá empecilhos. Talvez alguém tenha lidado com isso em várias versões do Windows e exiba dimensões, janelas filhas ...

Cenários:  1. Mova a área de trabalho em uso para o monitor principal.  2. O segundo monitor está temporariamente indisponível. (tv)

    
por Suresurep 24.05.2016 / 20:09

4 respostas

0

Eu posso sugerir a chamada de ferramenta "Desktops" feita pela Sysinternals. Ele permite que você tenha vários desktops e alterne entre eles com uma combinação de teclas. Eu mesmo tenho procurado uma solução semelhante na minha máquina Windows e a coisa mais próxima que encontrei foi nos Desktops.

Link: link

    
por 24.05.2016 / 20:56
0

DisplayFusion pode fazer isso, via scripting .

Aqui está um exemplo de script personalizado DF que irá trocar todas as janelas visíveis entre os monitores 1 e 2:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;

public static class DisplayFusionFunction
{
    public static void Run(IntPtr windowHandle)
    {
        // Get visible window handles on monitors 1 and 2.
        IntPtr[] windowHandles1 = BFS.Window.GetVisibleWindowHandlesByMonitor(1);
        IntPtr[] windowHandles2 = BFS.Window.GetVisibleWindowHandlesByMonitor(2);

        // Iterate through window handles on each monitor, and send each to the other monitor.
        for (int i = 0; i < windowHandles1.Length; i++) {
            BFS.Window.MoveToMonitor(2, windowHandles1[i]);
        }

        for (int i = 0; i < windowHandles2.Length; i++) {
            BFS.Window.MoveToMonitor(1, windowHandles2[i]);
        }
    }
}
    
por 25.05.2016 / 18:31
0

Soluções. Obrigado Techie007 por me levar de volta aos scripts:

MonSwap - link
Trocar todas as janelas de um monitor para outro com Win + Shift + S
Trabalhei todas as vezes em meus testes até agora.
Pode facilmente modificar para 3+ monitores.

Ferramentas de monitor duplo - link
"Girar" todas as janelas para o próximo monitor.
Opções - > Trocar de tela - > Outras janelas - > Girar as telas para frente.
Quando 2 de uma classe / título de janela, às vezes, coloca-os fora de ordem.

    
por 28.05.2016 / 21:16
0

Outra solução possível:

Monitor 1 usa desktops virtuais
Monitor 2 mostra pager para o Monitor 1

Bônus: o pager mostrará a tela inteira e somente a área de trabalho "oculta".

    
por 31.05.2016 / 17:42