Fixar aplicativos em vários desktops no Windows 10

Fixar aplicativos em vários desktops no Windows 10

Um dos grandes novos recursos do Windows é o fato de que vários desktops “virtuais” agora têm suporte nativo, permitindo organizar coleções de janelas e separar grupos de tarefas.

Isso é bom.

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

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

Tenho dois monitores e muitas vezes gosto de ver um filme sendo reproduzido no meu segundo monitor, seja em um navegador da web ou em um reprodutor de mídia, enquanto tenho um navegador e alguns outros aplicativos na tela principal. Fazer isso não é um problema na minha configuração atual, simplesmente funciona.

Com o advento dos desktops virtuais eu queria colocar o navegador em um desktop virtual e outro aplicativo em outro desktop virtual e ainda poder assistir ao vídeo quando eu mudar de desktop, deixando-o efetivamente visível emambosáreas de trabalho virtuais. Usar o aplicativo Film & TV padrão para reproduzir um vídeo e depois mudar para outra área de trabalho simplesmente resulta na interrupção do vídeo sem qualquer aviso.

Isto não é bom.

O que eu esperava era que os dois monitores tivessem sua própria área de trabalho virtual ou houvesse alguma opção "fixar em todos os desktops" semelhante ao recurso "janela fixa" que vi em muitos gerenciadores de janelas baseados em Linux.

Existe alguma maneira de conseguir isso?

Responder1

O recurso agora foi lançado como um dos vários"Melhorias na área de trabalho virtual"noAtualização de aniversário do Windows 10(Compilação 14316):

Agora você pode fixar uma janela para que ela fique disponível em todas as áreas de trabalho. Para fazer isso, inicie o Task View, clique com o botão direito na janela que deseja fixar e escolha “Mostrar esta janela em todos os desktops”. Experimente fixar o Skype ou o Groove Music para que estejam sempre ao seu alcance. E se você tiver uma configuração multi-mon, poderá aproveitar a capacidade de ter seu aplicativo de e-mail no segundo monitor, independentemente da área de trabalho para a qual você mudar.

insira a descrição da imagem aqui

Responder2

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

Autohotkey é uma grande ajuda nisso. Script de exemplo - MyLoop.ahk:

WS_EX_TOOLWINDOW:= 0x00000080
Laço
{
   WinSet, ExStyle, +%WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Dormir, 100
}

Coloque isso na inicialização do Windows e a janela do Google Chrome irá "grudar" 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, alternar, A

Coloque isso na inicialização do Windows e você pode ALTERAR o estado "fixo" para qualquer janela pressionando Shift + botão do meio e clique nela.

Tecla de adição - Ctrl + clique no botão do meio alternará o estado "superior". Muito útil.

PS: aplicativos modernos (por exemplo, Calculadora do Windows 10) de alguma forma ignoram isso. Não sei por quê. Mas para a janela do Windows Explorer e a maioria dos 'aplicativos antigos' - funciona bem

Responder3

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

exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);

informação relacionada