AutoHotkey gebruiken om van virtuele desktop te wisselen in Windows 10



Een van de beste eigenschappen van Windows 10 is de Taakweergave , die u kunt gebruiken om virtuele desktops . Deze desktops zijn een geweldige manier om de ramen van je open toepassingen . U kunt op drukken Windows-toets + Tab (houd de ingedrukt Windows-toets en druk op Tab ) om ze in de taakweergave te zien.



Windows 10 Taakweergave

Een functie die Microsoft echter niet biedt, is de mogelijkheid om direct over te schakelen naar een specifieke virtuele desktop met een Toetsenbord sneltoets . Als u bijvoorbeeld op Bureaublad 2 en u wilt overschakelen naar Bureaublad 6 , je moet ingedrukt houden Windows-toets + Ctrl en druk vier keer op de pijl naar rechts. Het zou makkelijker zijn om een ​​snelkoppeling te hebben die automatisch overschakelt naar desktop nummer 6, ongeacht welke desktop je gebruikt.



Deze zelfstudie laat zien hoe u sneltoetsen kunt maken om direct op nummer over te schakelen naar een virtueel bureaublad. We doen dit met behulp van het gratis Windows-hulpprogramma AutoHotkey.

Het script maken

  1. Het installatieprogramma wordt afgesloten en een nieuw tekstbestand wordt geopend in Kladblok . Het bestand is ons script. (EEN script is een tekstbestand zonder opmaak dat een reeks opdrachten bevat die door een ander programma moeten worden uitgevoerd, in dit geval AutoHotkey.)
Opmerking

Het script op deze pagina is gebaseerd op: Windows Desktop Switcher , en open source script gehost op GitHub op github.com/pmb6tz/windows-desktop-switcher .



  1. Kopiëren en plak het volgende script in uw Kladblok-document:
; Globals DesktopCount = 2 ; Windows starts with 2 desktops at boot CurrentDesktop = 1 ; Desktop count is 1-indexed (Microsoft numbers them this way) ; ; This function examines the registry to build an accurate list of the current virtual desktops and which one we're currently on. ; Current desktop UUID appears to be in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerSessionInfo1VirtualDesktops ; List of desktops appears to be in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerVirtualDesktops ; mapDesktopsFromRegistry() { global CurrentDesktop, DesktopCount ; Get the current desktop UUID. Length should be 32 always, but there's no guarantee this couldn't change in a later Windows release so we check. IdLength := 32 SessionId := getSessionId() if (SessionId) { RegRead, CurrentDesktopId, HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerSessionInfo\%SessionId%VirtualDesktops, CurrentVirtualDesktop if (CurrentDesktopId) { IdLength := StrLen(CurrentDesktopId) } } ; Get a list of the UUIDs for all virtual desktops on the system RegRead, DesktopList, HKEY_CURRENT_USER, SOFTWAREMicrosoftWindowsCurrentVersionExplorerVirtualDesktops, VirtualDesktopIDs if (DesktopList) { DesktopListLength := StrLen(DesktopList) ; Figure out how many virtual desktops there are DesktopCount := DesktopListLength / IdLength } else { DesktopCount := 1 } ; Parse the REG_DATA string that stores the array of UUID's for virtual desktops in the registry. i := 0 while (CurrentDesktopId and i  DesktopCount || targetDesktop <1) { OutputDebug, [invalid] target: %targetDesktop% current: %CurrentDesktop% return } ; Go right until we reach the desktop we want while(CurrentDesktop targetDesktop) { Send ^#{Left} CurrentDesktop-- OutputDebug, [left] target: %targetDesktop% current: %CurrentDesktop% } } ; ; This function creates a new virtual desktop and switches to it ; createVirtualDesktop() { global CurrentDesktop, DesktopCount Send, #^d DesktopCount++ CurrentDesktop = %DesktopCount% OutputDebug, [create] desktops: %DesktopCount% current: %CurrentDesktop% } ; ; This function deletes the current virtual desktop ; deleteVirtualDesktop() { global CurrentDesktop, DesktopCount Send, #^{F4} DesktopCount-- CurrentDesktop-- OutputDebug, [delete] desktops: %DesktopCount% current: %CurrentDesktop% } ; Main SetKeyDelay, 75 mapDesktopsFromRegistry() OutputDebug, [loading] desktops: %DesktopCount% current: %CurrentDesktop% ; User config! ; This section binds the key combo to the switch/create/delete actions 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() ; Alternate keys for this config. Adding these because DragonFly (python) doesn't send CapsLock correctly. ;^!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. Het bestand opslaan.

Uw eerste AutoHotkey.ahk-script opslaan in Kladblok

  1. Dit schrift, AutoHotkey.ahk , bevindt zich in uw map Documenten. Open een nieuwe Verkenner venster (druk op Windows-toets +E) en ga naar Documenten .

AutoHotkey.ahk bevindt zich in uw map Documenten

  1. Voer het script uit door dubbelklikken het bestand. U zult niets zien gebeuren, maar AutoHotkey voert nu het script uit.

Hoe werkt het?

Het script werkt door bij te houden welke virtuele desktop je momenteel gebruikt. Houd de winkey ingedrukt en druk op een cijfer tussen 1 en 9 schakelt automatisch het juiste aantal keren naar links of rechts om bij het gewenste bureaublad te komen. (Als u op het nummer drukt van een bureaublad dat nog niet bestaat, gebeurt er niets.)

Uw nieuwe sneltoetsen testen

Om het uit te testen, maakt u eerst een nieuwe virtuele desktop. Om dit te doen, klikt u op het pictogram Taakweergave op uw Taakbalk (of druk op Windows-toets +Tab) en klik vervolgens op + Nieuw bureaublad . Of gebruik de sneltoets Windows-toets +Ctrl+D.

Doe dit één keer voor elke nieuwe virtuele desktop die u wilt maken. Elk extra bureaublad is rechts van het vorige georiënteerd.

Nu kunt u overschakelen naar elk van deze bureaubladen met behulp van de sneltoetsen die in het script zijn gedefinieerd. Houd ingedrukt Windows-toets en druk op een cijfer tussen 1 en 9 , en u wordt automatisch overgeschakeld naar dat genummerde bureaublad. Druk bijvoorbeeld op Windows-toets +3 om over te schakelen naar het derde virtuele bureaublad van links.

Het script stoppen

Om te stoppen met het gebruik van het script, ga naar je systeemvak en klik met de rechtermuisknop het AutoHotkey-pictogram , dat eruitziet als een grote groene 'H' om het AutoHotkey Windows-meldingsmenu te openen.

Opmerking

Als je het pictogram niet ziet, gebruik dan het caret ^ knop om verborgen pictogrammen weer te geven.

AutoHotkey systray-menu

In dit menu kunt u: Sneltoetsen opschorten , Script pauzeren , of Uitgang AutoHotkey volledig. Elk van deze acties zorgt ervoor dat uw sneltoetsen weer normaal worden.

Uw script automatisch uitvoeren wanneer Windows start

Als u het script elke keer dat u Windows start automatisch wilt uitvoeren, verplaatst u het script naar uw Opstartmap .

In Windows 10 bevindt de opstartmap zich op:

 [Your home folder]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

Deze map is normaal gesproken verborgen, dus u kunt er alleen in de Verkenner naar toe als u selecteert VisieVerborgen bestanden bekijken bovenaan het Verkenner-venster.

U kunt echter ook rechtstreeks toegang krijgen tot de map Opstarten door het volledige mappad in te voeren in de Doos uitvoeren . druk op Windows-toets +R om het vak Uitvoeren te openen en typ vervolgens de volledige map pad . U kunt de omgevingsvariabele gebruiken %APP DATA% om automatisch het begin van de padnaam in te vullen. U kunt dit bijvoorbeeld typen in het vak Uitvoeren:

 %APPDATA%MicrosoftWindowsStart MenuProgramsStartup

Wanneer u op Enter drukt, wordt die map geopend in een nieuw Verkenner-venster.

Verplaats nu je script naar deze map. Als je je nog hebt Documenten map openen in een ander venster, slepen en neerzetten AutoHotkey.ahk in de map Opstarten.

AutoHotkey.ahk verplaatsen naar de opstartmap van Windows 10

Als u besluit dat u het script niet elke keer dat u Windows start automatisch wilt uitvoeren, opent u deze map opnieuw en verplaatst u het script ergens anders. U kunt het altijd handmatig uitvoeren door erop te dubbelklikken, ongeacht waar het zich op uw computer bevindt.

Extra notities

Dit script overschrijft de standaard Windows-snelkoppelingen voor: Winnen + (Aantal) , die normaal gesproken items op uw taakbalk openen ( Winnen + 1 opent het eerste item, enz.). Sommige ingebouwde Windows-toepassingen, zoals: Instellingen of Winkel negeer het script van AutoHotkey. Als u zich in een van deze vensters bevindt wanneer u sneltoetsen probeert, gebruikt deze het sneltoetsgedrag van Windows en opent iets van uw taakbalk in plaats van een nieuw bureaublad. Een ander ding om in gedachten te houden is dat AutoHotkey eigenlijk snel, één voor één, naar links en rechts schakelt tussen uw virtuele desktops. Als het een virtuele desktop tegenkomt waar een van deze speciale applicaties open is, stopt het met schakelen en blijft op dat bureaublad.

Helaas kunnen de standaard Windows-snelkoppelingen niet worden uitgeschakeld, wat onhandig is, maar tenzij u een van deze toepassingsvensters open heeft, werkt het AutoHotkey-script prima. Het script werkt meestal perfect met 95% van je andere programma's.

Als u wilt, kunt u uw AutoHotkey-script echter bewerken om een ​​andere toetsencombinatie te gebruiken.

Uw AutoHotkey-script bewerken

Kladblok openen ( BeginWindows-accessoiresKladblok ).

Open in Kladblok de Autosneltoets het dossier. Als u de opstartmap al heeft geopend, kunt u het pictogram slepen en neerzetten in het Kladblok-venster om het bestand te openen.

Of u kunt het openen door naar het dossierOpen in Kladblok en de bestandsnaam invoeren %APPDATA%MicrosoftWindowsStart MenuProgramsStartupAutoHotkey.ahk .

Wanneer het bestand is geopend, kunt u wijzigingen in het script aanbrengen om aan uw behoeften te voldoen. Als u bijvoorbeeld liever de sneltoetscombinatie Caps Lock+ (Aantal) , zoek naar deze regels in het script:

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) 

Verander in deze regels LWin naar Caps Lock :

  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) 

Sla uw wijzigingen op en dubbelklik op het script om het bij te werken in AutoHotkey. Als u fouten in uw script hebt gemaakt, voert AutoHotkey het niet uit en krijgt u een foutmelding. Anders wordt u gevraagd of u het script wilt bijwerken dat al wordt uitgevoerd:

Bevestigingsprompt voor AutoHotkey-updatescript

Kiezen Ja om uw nieuwe wijzigingen door te voeren.

Als u een idee heeft voor een andere sneltoetscombinatie, kunt u deze wijzigen in een willekeurige sneltoetscombinatie die nog niet in gebruik is.

Een toetsencombinatie kiezen

AutoHotkey heeft zijn eigen speciale woorden en tekens die het gebruikt om toetsenbordtoetsen in zijn scripts weer te geven. Bijvoorbeeld de Ctrl sleutel wordt vertegenwoordigd door een uitroepteken . Ctrl+ . gebruiken (Aantal) als uw sneltoetscombinatie, kunt u ' Caps Lock & ' naar ' ! ' in je schrift. Dan zien de regels er als volgt uit:

!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)

Merk op dat wanneer u een symbool gebruikt in plaats van een woord, u ' & ' in het script syntaxis . Deze regel is een van de speciale regels die AutoHotkey gebruikt in zijn scripttaal.

U vindt een volledige lijst van alle speciale woorden en symbolen voor AutoHotkey-scripts op de Autosneltoetslijst met toetsen bladzijde.