Utilizzo di AutoHotkey per cambiare desktop virtuali in Windows 10

16 / 100
()

Una delle migliori caratteristiche di Windows 10 è la Visualizzazione attività , che puoi utilizzare per creare desktop virtuali . Questi desktop sono un ottimo modo per distribuire e organizzare le finestre delle applicazioni aperte . 

Puoi premere Windows keyTab

(tieni premuto il tasto Windows e premi Tab ) per vederli nella Visualizzazione attività.

Visualizzazione attività di Windows 10

Tuttavia, una funzionalità non fornita da Microsoft è la possibilità di passare istantaneamente a un desktop virtuale specifico con una scorciatoia da tastiera . Ad esempio, se sei su Desktop 2 e vuoi passare a Desktop 6 , devi tenere premuto Windows keyCtrle premere Right arrowquattro volte. Sarebbe più facile avere un collegamento che passa automaticamente al desktop numero 6, indipendentemente dal desktop che stai utilizzando.

Questo tutorial mostra come creare scorciatoie da tastiera per passare direttamente a qualsiasi desktop virtuale in base al numero. Lo realizziamo utilizzando l’utilità gratuita di Windows, AutoHotkey .

Creazione della sceneggiatura

  1. Il programma di installazione si chiude e un nuovo file di testo si apre in Blocco note . Il file è il nostro script. (Uno script è un file di testo normale contenente una serie di comandi che devono essere eseguiti da un altro programma, in questo esempio AutoHotkey.)

Nota

Lo script in questa pagina è basato su Windows Desktop Switcher , uno script open source ospitato su GitHub all’indirizzo github.com/pmb6tz/windows-desktop-switcher .

  1. Copia e incolla il seguente script nel tuo documento Blocco note:
; global
Conteggio desktop = 2 ; Windows inizia con 2 desktop all'avvio
Desktop corrente = 1 ; Il conteggio del desktop è indicizzato a 1 (Microsoft li numera in questo modo)
;
; Questa funzione esamina il registro per creare un elenco accurato dei desktop virtuali correnti e di quello in cui ci troviamo attualmente.
; L'UUID desktop corrente sembra essere in HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops
; L'elenco dei desktop sembra essere in HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops
;
mapDesktopsFromRegistry() {
 CurrentDesktop globale, DesktopCount
 ; Ottieni l'UUID desktop corrente. La lunghezza dovrebbe essere sempre 32, ma non vi è alcuna garanzia che questo non possa cambiare in una versione successiva di Windows, quindi controlliamo.
 IdLength := 32
 SessionId := getSessionId()
 se (ID sessione) {
 RegRead, CurrentDesktopId, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\%SessionId%\VirtualDesktops, CurrentVirtualDesktop
 if (CurrentDesktopId) {
 IdLength := StrLen(CurrentDesktopId)
 }
 }
 ; Ottieni un elenco degli UUID per tutti i desktop virtuali sul sistema
 RegRead, DesktopList, HKEY_CURRENT_USER, SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops, VirtualDesktopIDs
 se (Elenco desktop) {
 DesktopListLength := StrLen(DesktopList)
 ; Scopri quanti desktop virtuali ci sono
 Conteggio desktop := Lunghezza elenco desktop / Lunghezza id
 }
 altro {
 Conteggio desktop := 1
 }
 ; Analizza la stringa REG_DATA che archivia la matrice di UUID per desktop virtuali nel registro.
 io := 0
 while (CurrentDesktopId e io < DesktopCount) {
 StartPos := (i * IdLength) + 1
 DesktopIter := SubStr(DesktopList, StartPos, IdLength)
 OutputDebug, l'iteratore punta a %DesktopIter% e il conteggio è %i%.
 ; Rompi se troviamo una corrispondenza nell'elenco. Se non abbiamo trovato nulla, tieni il
 ; vecchio indovina e prego abbiamo ancora ragione MrGreen .
 if (DesktopIter = CurrentDesktopId) {
 CurrentDesktop := io + 1
 OutputDebug, il numero del desktop corrente è %CurrentDesktop% con un ID di %DesktopIter%.
 rottura
 }
 io++
 }
}
;
; Questa funzione rileva l'ID della sessione corrente.
;
getSessionId()
{
 ProcessId := DllCall("GetCurrentProcessId", "UInt")
 se livello di errore {
 OutputDebug, errore durante il recupero dell'ID del processo corrente: %ErrorLevel%
 Restituzione
 }
 OutputDebug, ID processo corrente: %ProcessId%
 DllCall("ProcessIdToSessionId", "UInt", ProcessId, "UInt*", SessionId)
 se livello di errore {
 OutputDebug, errore durante il recupero dell'ID sessione: %ErrorLevel%
 Restituzione
 }
 OutputDebug, ID sessione corrente: %SessionId%
 restituisce SessionId
}
;
; Questa funzione passa al numero di desktop fornito.
;
switchDesktopByNumber(targetDesktop)
{
 CurrentDesktop globale, DesktopCount
 ; Rigenera l'elenco dei desktop e dove ci inseriamo. Lo facciamo perché
 ; l'utente potrebbe aver cambiato desktop con mezzi diversi dallo script.
 mapDesktopsFromRegistry()
 ; Non tentare di passare a un desktop non valido
 if (targetDesktop > DesktopCount || targetDesktop < 1) {
 OutputDebug, destinazione [non valida]: %targetDesktop% corrente: %CurrentDesktop%
 Restituzione
 }
 ; Vai a destra finché non raggiungiamo il desktop che desideriamo
 while(CurrentDesktop < targetDesktop) {
 Invia ^#{destra}
 CurrentDesktop++
 OutputDebug, destinazione [destra]: %targetDesktop% corrente: %CurrentDesktop%
 }
 ; Vai a sinistra finché non raggiungiamo il desktop che desideriamo
 while(CurrentDesktop > targetDesktop) {
 Invia ^#{sinistra}
 CurrentDesktop--
 OutputDebug, [sinistra] destinazione: %targetDesktop% corrente: %CurrentDesktop%
 }
}
;
; Questa funzione crea un nuovo desktop virtuale e passa ad esso
;
createVirtualDesktop()
{
 CurrentDesktop globale, DesktopCount
 Invia, #^d
 Conteggio desktop++
 CurrentDesktop = %DesktopCount%
 OutputDebug, [crea] desktop: %DesktopCount% corrente: %CurrentDesktop%
}
;
; Questa funzione elimina il desktop virtuale corrente
;
deleteVirtualDesktop()
{
 CurrentDesktop globale, DesktopCount
 Invia, #^{F4}
 Conteggio desktop--
 CurrentDesktop--
 OutputDebug, [elimina] desktop: %DesktopCount% corrente: %CurrentDesktop%
}
; Principale
SetKeyDelay, 75
mapDesktopsFromRegistry()
OutputDebug, [caricamento] desktop: %DesktopCount% corrente: %CurrentDesktop%
; Configurazione utente!
; Questa sezione associa la combinazione di tasti alle azioni cambia/crea/elimina
LWin & 1::switchDesktopByNumber(1)
LWin & 2::switchDesktopByNumber(2)
LWin & 3::switchDesktopByNumber(3)
LWin & 4::switchDesktopByNumber(4)
LWin & 5::switchDesktopByNumber(5)
LWin & 6::switchDesktopByNumber(6)
LWin & 7::switchDesktopByNumber(7)
LWin & 8::switchDesktopByNumber(8)
LWin & 9::switchDesktopByNumber(9)
;CapsLock & 1::switchDesktopByNumber(1)
;CapsLock & 2::switchDesktopByNumber(2)
;CapsLock & 3::switchDesktopByNumber(3)
;CapsLock & 4::switchDesktopByNumber(4)
;CapsLock & 5::switchDesktopByNumber(5)
;CapsLock & 6::switchDesktopByNumber(6)
;CapsLock & 7::switchDesktopByNumber(7)
;CapsLock & 8::switchDesktopByNumber(8)
;CapsLock & 9::switchDesktopByNumber(9)
;CapsLock & n::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & p::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & s::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & a::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & c::createVirtualDesktop()
;CapsLock & d::deleteVirtualDesktop()
; Chiavi alternative per questa configurazione. Aggiungendoli perché DragonFly (python) non invia CapsLock correttamente.
;^!1::switchDesktopByNumber(1)
;^!2::switchDesktopByNumber(2)
;^!3::switchDesktopByNumber(3)
;^!4::switchDesktopByNumber(4)
;^!5::switchDesktopByNumber(5)
;^!6::switchDesktopByNumber(6)
;^!7::switchDesktopByNumber(7)
;^!8::switchDesktopByNumber(8)
;^!9::switchDesktopByNumber(9)
;^!n::switchDesktopByNumber(CurrentDesktop + 1)
;^!p::switchDesktopByNumber(CurrentDesktop - 1)
;^!s::switchDesktopByNumber(CurrentDesktop + 1)
;^!a::switchDesktopByNumber(CurrentDesktop - 1)
;^!c::createVirtualDesktop()
;^!d::deleteVirtualDesktop()
  1. Salva il file.
Salvataggio del tuo primo script AutoHotkey.ahk nel Blocco note
  1. Questo script, AutoHotkey.ahk , si trova nella cartella Documenti. Apri una nuova finestra di Esplora file (premi Windows keyE) e vai su Documenti .
AutoHotkey.ahk si trova nella cartella Documenti
  1. Eseguire lo script facendo doppio clic sul file. Non vedrai succedere nulla, ma AutoHotkey ora sta eseguendo lo script.

Come funziona?

Lo script funziona tenendo traccia di quale desktop virtuale stai attualmente utilizzando. Tenendo premuto il tasto Winkey e premendo un numero compreso tra 1 e 9 si passa automaticamente a sinistra o a destra il numero corretto di volte per arrivare al desktop desiderato. (Se premi il numero di un desktop che non esiste ancora, non accadrà nulla.)

Testare i tuoi nuovi tasti di scelta rapida

Per testarlo, crea prima un nuovo desktop virtuale. Per fare ciò, fai clic sull’icona Visualizzazione attività sulla barra delle applicazioni (o premi Windows keyTab), quindi fai clic su + Nuovo desktop . Oppure usa la scorciatoia da tastiera Windows keyCtrlD.

Fallo una volta per ogni nuovo desktop virtuale che desideri creare. Ogni desktop aggiuntivo è orientato a destra del precedente.

Ora puoi passare a uno qualsiasi di questi desktop usando le scorciatoie da tastiera definite nello script. Tenere premuto Windows keye premere un numero compreso tra 1 e 9 e si passa automaticamente a quel desktop numerato. Ad esempio, premi Windows key3per passare al terzo desktop virtuale da sinistra.

Interruzione del copione

Per interrompere l’utilizzo dello script, vai alla barra delle applicazioni e fai clic con il pulsante destro del mouse sull’icona AutoHotkey , che sembra una grande “H” verde per visualizzare il menu di notifica di Windows AutoHotkey.

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?