Właśnie stworzyłem skrypt dla autohotkey, który osiąga to w Windows 10 dla maksymalnie 10 komputerów stacjonarnych.
Jak to działa:
Pobierz i zainstaluj autohotkey . Skopiuj i wklej poniższy kod do notatnika i zapisz go z rozszerzeniem .ahk
Sugeruję utworzenie skrótu tego pliku w folderze startowym, aby działał on podczas uruchamiania systemu Windows.
DOMYŚLNE KLAWISZE:
Przełącz pulpit: WIN + NUMER DESKTOPU (0 = numer pulpitu 10)
Nowy pulpit: CTRL + WIN + D
Zamknij pulpit: CTRL + WIN + F4
Wyświetl stan pulpitu: WIN + ”
WAŻNY:
Aby to działało, należy używać TYLKO klawiszy skrótów do otwierania, zamykania i zmieniania pulpitów, ponieważ skrypt nasłuchuje tych skrótów klawiszowych, aby poznać bieżącą i całkowitą liczbę pulpitów.
Jeśli utworzysz, zamkniesz lub zmienisz pulpit za pomocą menu WIN + TAB za pomocą myszy, skrypt przestanie działać. Aby ponownie uruchomić, musisz edytować pierwsze dwa wiersze, aby odzwierciedlić aktualny stan twoich komputerów. (desktopcount / currentdesktop)
Nie oznacza to, że nie możesz używać ekranu WIN + TAB jako przeglądu swoich obecnych komputerów. Możesz go używać w połączeniu ze skrótami klawiszowymi do organizowania komputerów stacjonarnych. Tak, skróty klawiszowe nadal działają, gdy przeglądarka zadań Windows jest otwarta! (WIN + TAB) Po prostu NIE używaj myszy !!!
Ponadto zaczekaj, aż skrypt załaduje się po uruchomieniu systemu Windows, zanim utworzysz nowy pulpit, inaczej nie będzie działać. Może to chwilę potrwać, w zależności od liczby posiadanych programów startowych.
Ok, dodałem jeszcze jedną rzecz, aby ułatwić synchronizację skryptu ze stanem pulpitu. Teraz jest klawisz skrótu, który wyświetli stan, w którym skrypt wierzy, że są w komputerach stacjonarnych, więc wystarczy dopasować komputery za pomocą myszy, aby pasowały do skryptu, i wszystko zostanie ponownie zsynchronizowane! Dla mnie ze szwajcarską klawiaturą udało się dobrze mieć „? klawisz obok 0 i to ma sens z? na nim, ale na innych klawiaturach możesz to zmienić, co można łatwo zrobić, zmieniając linię zaraz po skrócie dla 0/10 (zaczynając od # ') na cokolwiek zechcesz.
Właściwie właśnie zdałem sobie sprawę ... tak długo, jak długo liczba pulpitów jest poprawna, utworzenie nowego pulpitu automatycznie zsynchronizuje wartość bieżącego pulpitu.
(Linie zaczynające się od; są komentarzami i nie wpływają na skrypt)
Kod:
#NoTrayIcon
;If the script stops working:
;Change the following values to reflect your current desktop state and reload the script.
;Remember to change them back to 1 after reloading the script if you have it set to start with Windows
desktopcount := 1
currentdesktop := 1
;You can change the hotkeys for creating, closing, and switching desktops bellow.
;The current hotkeys are CTRL+WIN+D for new desktop, CTRL+WIN+F4 to close desktop
;and WIN+NUMBER for switching desktops.
;For example, to change the hotkey for new desktop replace ^#D bellow with the desired hotkey.
;Refer to the autohotkey documentation for a full list of symbols refering to modifier keys,
;as you can see ^ is CTRL and # is WIN key.
;If you wanted to change the switch desktop from WIN key to CTRL for example you would have
;to replace the # before each number to a ^
^#D::NewDesktop()
^#F4::CloseDesktop()
#1::SwitchDesktop(1)
#2::SwitchDesktop(2)
#3::SwitchDesktop(3)
#4::SwitchDesktop(4)
#5::SwitchDesktop(5)
#6::SwitchDesktop(6)
#7::SwitchDesktop(7)
#8::SwitchDesktop(8)
#9::SwitchDesktop(9)
#0::SwitchDesktop(10)
#'::MsgBox Desktop Count = %desktopcount%`nCurrent Desktop = %currentdesktop%
;Do not change anything after this line, unless you know what you are doing ;)
;-----------------------------------------------------------------------------------------------
SwitchDesktop(desktop)
{
global desktopcount
global currentdesktop
desktopdiff := desktop - currentdesktop
if (desktop > desktopcount)
{
return
}
if (desktopdiff < 0)
{
desktopdiff *= -1
Loop %desktopdiff%
{
Send ^#{Left}
}
}
else if (desktopdiff > 0)
{
Loop %desktopdiff%
{
Send ^#{Right}
}
}
currentdesktop := desktop
}
NewDesktop()
{
global desktopcount
global currentdesktop
if (desktopcount > 9)
{
return
}
desktopcount ++
currentdesktop := desktopcount
Send ^#d
}
CloseDesktop()
{
global desktopcount
global currentdesktop
desktopcount --
if (currentdesktop != 1)
{
currentdesktop --
}
Send ^#{f4}
}