Fixar aplicativos a vários desktops no Windows 10

58

Um dos grandes novos recursos para o Windows é o fato de que vários desktops "virtuais" agora são suportados nativamente, permitindo organizar coleções de janelas e separar grupos de tarefas.

Isso é bom.

Você pode mover as janelas entre as áreas de trabalho clicando no botão "tarefas" e clicando com o botão direito do mouse em uma janela do aplicativo e selecionando "Mover para ..."

Isso é um pouco desajeitado e não tão bom.

Eu tenho dois monitores e muitas vezes gosto de ter um filme sendo reproduzido no meu segundo monitor, seja em um navegador da Web ou em um media player, enquanto tenho um navegador e alguns outros aplicativos na tela principal. Fazer isso não é um problema na minha configuração atual, apenas funciona.

Com o advento dos desktops virtuais, eu estava querendo colocar o navegador em um desktop virtual e outro em outro desktop virtual e ainda poder assistir ao vídeo quando eu alternar os desktops, tornando-o visível em ambos desktops virtuais. Usando o filme padrão & Aplicativo de TV para reproduzir um vídeo e depois mudar para outra área de trabalho simplesmente faz com que seu vídeo pare sem qualquer aviso.

Isso não é bom.

O que eu esperava era que os dois monitores tivessem sua própria área de trabalho virtual ou a opção "pin to all desktops" seria semelhante à do "sticky window" que vi em muitos gerenciadores de janelas baseados em Linux.

Existe alguma maneira de conseguir isso?

    
por Mokubai 05.08.2015 / 08:43

3 respostas

76

O recurso já foi lançado como um dos vários " Melhorias na área de trabalho virtual " no Atualização de Aniversário do Windows 10 (Build 14316):

You can now pin a window so it’s available on every desktop. To do this, launch Task View then right-click on the window you want to pin and choose “Show this window on all desktops”. Try pinning Skype or Groove Music so they’re always at your fingertips. And if you have a multi-mon setup, you might enjoy the ability to have your email app on the second monitor no matter which desktop you switch to.

    
por 13.06.2016 / 01:27
16

Sim. [quase :)] Todas as janelas com o atributo WS_EX_TOOLWINDOW são visíveis em todos os desktops.

Autohotkey é uma grande ajuda para isso. Exemplo de script - MyLoop.ahk:

WS_EX_TOOLWINDOW := 0x00000080
Loop
{
   WinSet, ExStyle, +%WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Sleep,100
}

Coloque isso na inicialização do Windows e a janela do Google Chrome "ficará" em todos os desktops virtuais.

Ou atribua isso como uma tecla de atalho: Exemplo de script - MyHotkeys.ahk:

WS_EX_TOOLWINDOW := 0x00000080
+MButton::WinSet, ExStyle, ^%WS_EX_TOOLWINDOW%, A
^MButton::WinSet, AlwaysOnTop, toggle, A

Coloque isso na inicialização do Windows e você pode alternar o estado de "sticky" para qualquer janela pressionando Shift + clique no botão do meio.

Adição chave - Ctrl + clique no botão do meio irá alternar o estado "superior". Muito útil.

PS: aplicativos modernos (por exemplo, o Windows 10 Calculator) de alguma forma ignoram isso. Não sei porque. Mas para a janela do Windows Explorer e a maioria dos 'aplicativos antigos' - é um trabalho bem

    
por 25.11.2015 / 10:49
1

Com base na solução @idj acima, é assim que é feito em C:

exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);
    
por 05.11.2016 / 22:26