Appunta le applicazioni su più desktop in Windows 10


73

Una delle nuove grandi funzionalità di Windows è il fatto che più desktop "virtuali" sono ora supportati in modo nativo, consentendo di organizzare raccolte di finestre insieme e gruppi separati di attività.

Questo è buono.

Puoi spostare le finestre tra i desktop facendo clic sul pulsante "attività", quindi facendo clic con il pulsante destro del mouse sulla finestra di un'applicazione e selezionando "Sposta in ..."

Questo è un po 'goffo e non abbastanza buono.

Ho due monitor e spesso mi piace avere un film in riproduzione sul mio secondo monitor, sia in un browser web che in un lettore multimediale, mentre ho un browser e alcune altre applicazioni nella schermata principale. Fare questo non è un problema nella mia configurazione attuale, funziona e basta.

Con l'avvento dei desktop virtuali volevo mettere il browser su un desktop virtuale e un'altra app su un altro desktop virtuale ed essere ancora in grado di guardare il video quando cambio desktop, rendendolo effettivamente visibile su entrambi i desktop virtuali. L'utilizzo dell'app Film & TV predefinita per riprodurre un video e quindi lo spostamento su un altro desktop comporta semplicemente l'interruzione del video senza alcun preavviso.

Questo non è un bene.

Quello che speravo era che o i due monitor avessero il loro desktop virtuale o la loro sarebbe stata un'opzione "aggiungi a tutti i desktop" simile alla funzione "finestra appiccicosa" che ho visto in molti gestori di finestre basati su Linux.

C'è un modo per raggiungere questo obiettivo?


Non che io sappia, anche se ho esperienza con più sistemi che utilizzano aree di lavoro (diversi sistemi Linux) nessuno ha mai avuto questa caratteristica, il che rompe il concetto di avere più aree di lavoro.
Daniel,

2
@Daniel Ho parlato con diverse persone e si riferiscono ad esso come "finestre appiccicose"
Mokubai

2
@Psychogeek Mi riferisco sia a desktop multi-monitor che a desktop virtuali, il lato multi-monitor va bene. Posso aprire un video, metterlo sulla seconda schermata e tutto va bene, ma se passo a un altro desktop usando la nuova funzionalità del desktop virtuale, la finestra del video scompare e (in alcuni casi) interrompe la riproduzione completa. Vorrei avere un modo per bloccare una finestra su più desktop virtuali.
Mokubai

Capito, molti dei programmi desktop virtuali avevano quella funzionalità, in cui si assegnavano programmi a virtual specifici, esistevano ancora molti piccoli problemi a seconda del metodo.
Psycogeek,

6
Penso che un esempio abbastanza standard per questa esigenza sia quasi qualsiasi applicazione di comunicazione. Vorrei utilizzare desktop virtuali separati per diversi progetti su cui sto lavorando, ma mi piacerebbe bloccare / incollare client di messaggistica istantanea ed e-mail. Mi sembra un caso d'uso piuttosto standard che potrei voler separare le mie aree di lavoro senza dover scambiare desktop solo per ricevere avvisi e-mail!
Colin K,

Risposte:


100

La caratteristica è stato rilasciato come una di più "Improvements desktop virtuali" in Aggiornamento anniversario di Windows 10 (costruire 14316):

Ora puoi bloccare una finestra in modo che sia disponibile su tutti i desktop. Per fare ciò, avvia Task View, quindi fai clic con il pulsante destro del mouse sulla finestra che desideri aggiungere e scegli "Mostra questa finestra su tutti i desktop". Prova a bloccare Skype o Groove Music in modo che siano sempre a portata di mano. E se hai una configurazione multi-mon, potresti avere la possibilità di avere la tua app di posta elettronica sul secondo monitor, indipendentemente dal desktop su cui passi.

inserisci qui la descrizione dell'immagine


Il post parla di essere disponibile su Windows Insider Fast Ring, hai qualche timeline per quando questo cadrà per gli utenti normali?
Mokubai

1
@Mokubai Per quanto ne so non c'è ancora una data di uscita pubblica ferma. Solo un vago "Questa estate [dell'emisfero nord]".
Daniel Ballinger,

ma come lo sblocchi?
Mikey,

@Mikey Deselezionando l'opzione "Mostra X su tutti i desktop" non funziona per te?
Daniel Ballinger,

Funziona su Windows su cui posso fare clic, il problema è quando non sono visibili nella vista delle attività. Ovviamente era visibile prima quando l'ho acceso, ma ora ogni volta che vai in task view la finestra scompare .. Quindi qual è un altro modo per disabilitarlo? C'è una chiave reg? Attualmente sto riscontrando questo problema con il telegramma che penso sia un QT (app multipiattaforma). Giusto per essere chiari, la finestra è visibile su tutti i desktop, ma scompare quando
Mikey

18

Sì. [quasi :)] Ogni finestra con l'attributo WS_EX_TOOLWINDOW è visibile su tutti i desktop.

Autohotkey è di grande aiuto in questo. Script di esempio - MyLoop.ahk:

WS_EX_TOOLWINDOW: = 0x00000080
Ciclo continuo
{
   WinSet, ExStyle, +% WS_EX_TOOLWINDOW%, ahk_class Chrome_WidgetWin_1
   Sonno, 100
}

Mettilo all'avvio di Windows e la finestra di Google Chrome si "attaccherà" a tutti i desktop virtuali.

O assegnare questo come tasto di scelta rapida: esempio di script - MyHotkeys.ahk:

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

Mettilo all'avvio di Windows e puoi ATTIVARE lo stato "appiccicoso" per qualsiasi finestra premendo Maiusc + tasto centrale su di esso.

Tasto aggiunta - Ctrl + clic sul pulsante centrale commuta lo stato "più in alto". Molto utile.

PS: le applicazioni moderne (ad esempio Windows 10 Calculator) in qualche modo ignorano questo. Non so perché. Ma per la finestra di Windows Explorer e la maggior parte delle "vecchie applicazioni", funziona perfettamente


Ho provato gli script per il clic centrale + tasti di scelta rapida. Il tasto Ctrl + tasto centrale ha funzionato bene. Tuttavia, non sono riuscito a far funzionare il desktop virtuale virtuale. Nessuna delle finestre su cui l'ho provato è passata alla transizione.
Daniel Ballinger,

Ha funzionato per me. Nel mio caso volevo sempre impostarlo per mostrare, quindi ho cambiato il cursore ( ^) con un segno più ( +).
Ohaal,

1

Basato sulla soluzione @idj sopra, ecco come farlo in C:

exstyle = GetWindowLongPtr(hwndPtr, GWL_EXSTYLE);
exstyle |= WS_EX_TOOLWINDOW
SetWindowLongPtr(hwndPtr, GWL_EXSTYLE, exstyle);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.