방금 Windows 10에서 최대 10 대의 데스크톱에이를 수행 하는 autohotkey 용 스크립트를 만들었 습니다.
작동시키는 방법 :
autohotkey를 다운로드하여 설치 하십시오 . 코드를 복사하여 메모장에 붙여 넣고 파일 확장명 .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}
}