Я щойно створив сценарій для автоматичної клавіші, який виконує це в Windows 10 для до 10 робочих столів.
Як змусити його працювати:
Завантажте та встановіть автоматичну клавішу . Скопіюйте та вставте код нижче в блокнот та збережіть його з розширенням файлу .ahk
Я пропоную зробити ярлик цього файлу у своїй папці запуску, щоб він запускався при запуску Windows.
НЕЗАГАЛЬНІ ХОТЛЬКИ
Перемикайте на робочий стіл: WIN + DESKTOP NUMBER (0 = настільний номер 10)
Новий робочий стіл: CTRL + WIN + D
Закрити робочий стіл: CTRL + WIN + F4
Відображення стану робочого столу: WIN + '
ВАЖЛИВО:
Для того, щоб він працював, ви повинні ТИЛЬКО використовувати гарячі клавіші для відкриття, закриття та зміни робочого столу, оскільки сценарій слухає ці гарячі клавіші, щоб знати поточну та загальну кількість робочих столів.
Якщо ви створюєте, закриваєте або змінюєте настільні комп’ютери через меню WIN + TAB за допомогою миші, сценарій припинить роботу. Щоб знову працювати, вам потрібно буде відредагувати перші два рядки, щоб відобразити поточний стан ваших робочих столів. (настільний / поточний робочий стіл)
Це не означає, що ви не можете використовувати екран WIN + TAB як огляд ваших поточних настільних ПК. Ви можете використовувати його в поєднанні з гарячими клавішами для організації робочого столу. Так, гарячі клавіші все ще працюють, коли програма перегляду завдань Windows відкрита! (WIN + TAB) Просто НЕ використовуйте мишку !!!
Крім того, зачекайте, коли сценарій завантажиться після запуску Windows, перш ніж створювати нові настільні ПК, інакше він не працюватиме. Це може зайняти хвилину залежно від кількості запуску програм у вас.
Гаразд, я додав ще одну річ, щоб полегшити повторну синхронізацію сценарію зі станом робочого столу. Зараз є гаряча клавіша, яка відображає стан, у якому сценарій вважає, що настільні комп'ютери знаходяться, тому все, що вам потрібно зробити, - це налаштувати настільні ПК за допомогою миші, щоб відповідати сценарію, і все це буде синхронізовано знову! Для мене зі швейцарською клавіатурою це добре вийшло, маючи '? ключ поряд із 0, і це має сенс з? на ньому, але на інших клавіатурах ви можете змінити це, що можна легко зробити, змінивши рядок відразу після гарячої клавіші на 0/10 (починаючи з # ') на все, що вам подобається.
Власне, я щойно зрозумів .... доки правильний кількість робочого столу, ніж створення нового робочого столу автоматично повторно синхронізує значення поточного робочого столу.
(Рядки, що починаються з; є коментарями та не впливають на сценарій)
Код:
#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}
}