Anclar aplicaciones a varios escritorios en Windows 10

Anclar aplicaciones a varios escritorios en Windows 10

Una de las grandes características nuevas de Windows es el hecho de que ahora se admiten de forma nativa múltiples escritorios "virtuales", lo que le permite organizar colecciones de ventanas juntas y separar grupos de tareas.

Esto es bueno.

Puede mover ventanas entre escritorios haciendo clic en el botón "tareas" y luego haciendo clic derecho en una ventana de aplicación y seleccionando "Mover a..."

Esto es un poco torpe y no tan bueno.

Tengo dos monitores y, a menudo, me gusta reproducir una película en mi segundo monitor, ya sea en un navegador web o en un reproductor multimedia, mientras tengo un navegador y algunas otras aplicaciones en la pantalla principal. Hacer esto no es un problema en mi configuración actual, simplemente funciona.

Con la llegada de los escritorios virtuales, quería poner el navegador en un escritorio virtual y otra aplicación en otro escritorio virtual y aún poder ver el video cuando cambio de escritorio, teniéndolo efectivamente visible enambosescritorios virtuales. Usar la aplicación predeterminada de Cine y TV para reproducir un video y luego pasar a otro escritorio simplemente hace que el video se detenga sin previo aviso.

Esto no está bien.

Lo que esperaba era que los dos monitores tuvieran su propio escritorio virtual o que hubiera alguna opción de "fijar a todos los escritorios" similar a la función de "ventana fija" que he visto en muchos administradores de ventanas basados ​​en Linux.

¿Hay alguna manera de lograr esto?

Respuesta1

La función ahora se ha lanzado como una de varias"Mejoras en el escritorio virtual"en elActualización de aniversario de Windows 10(Construcción 14316):

Ahora puede fijar una ventana para que esté disponible en todos los escritorios. Para hacer esto, inicie la Vista de tareas, luego haga clic derecho en la ventana que desea anclar y seleccione "Mostrar esta ventana en todos los escritorios". Intente fijar Skype o Groove Music para que siempre estén a su alcance. Y si tiene una configuración de varios monitores, puede disfrutar de la posibilidad de tener su aplicación de correo electrónico en el segundo monitor sin importar a qué escritorio cambie.

ingrese la descripción de la imagen aquí

Respuesta2

Sí. [casi :)] Todas las ventanas con el atributo WS_EX_TOOLWINDOW son visibles en todos los escritorios.

Autohotkey es de gran ayuda en esto. Script de ejemplo: MyLoop.ahk:

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

Coloque esto en el inicio de Windows y la ventana de Google Chrome se "pegará" a todos los escritorios virtuales.

O asigne esto como una tecla de acceso rápido: Script de ejemplo: MyHotkeys.ahk:

WS_EX_TOOLWINDOW: = 0x00000080
+MBotón::WinSet, ExStyle, ^%WS_EX_TOOLWINDOW%, A
^MBotón::WinSet, AlwaysOnTop, alternar, A

Coloque esto en el inicio de Windows y podrá CAMBIAR el estado "fijo" de cualquier ventana presionando Shift+botón central y haga clic en ella.

Tecla de adición: Ctrl+clic en el botón central alternará el estado "superior". Muy útil.

PD: las aplicaciones modernas (por ejemplo, la Calculadora de Windows 10) de alguna manera ignoran esto. No sé por qué. Pero para la ventana del Explorador de Windows y la mayoría de las "aplicaciones antiguas", funciona bien.

Respuesta3

Basado en la solución @idj anterior, así es como se hace en C:

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

información relacionada