Tôi vừa tạo một kịch bản cho autohotkey để thực hiện điều này trong Windows 10 cho tối đa 10 máy tính để bàn.
Làm thế nào để nó hoạt động:
Tải về và cài đặt autohotkey . Sao chép và dán mã dưới đây vào notepad và lưu nó với phần mở rộng tệp .ahk
Tôi khuyên bạn nên tạo một lối tắt của tệp này trong thư mục khởi động để nó chạy khi Windows khởi động.
KIẾM TIỀN HẤP DẪN:
Chuyển đổi máy tính để bàn: THẮNG + SỐ DESKTOP (0 = số máy tính để bàn 10)
Máy tính để bàn mới: CTRL + THẮNG + D
Đóng màn hình: CTRL + THẮNG + F4
Hiển thị trạng thái màn hình: WIN + '
QUAN TRỌNG:
Để nó hoạt động, bạn CHỈ phải sử dụng các phím nóng để mở, đóng và thay đổi máy tính để bàn vì tập lệnh lắng nghe các phím nóng này để biết hiện tại và tổng số máy tính để bàn.
Nếu bạn tạo, đóng hoặc thay đổi máy tính để bàn thông qua menu WIN + TAB bằng chuột, tập lệnh sẽ ngừng hoạt động. Để làm cho nó hoạt động trở lại, bạn sẽ cần chỉnh sửa hai dòng đầu tiên để phản ánh trạng thái hiện tại của máy tính để bàn của bạn. (máy tính để bàn / currentdesktop)
Điều này không có nghĩa là bạn không thể sử dụng màn hình WIN + TAB làm tổng quan về máy tính để bàn hiện tại của mình. Bạn thực sự có thể sử dụng nó kết hợp các phím nóng để sắp xếp máy tính để bàn của bạn. Có, các phím nóng vẫn hoạt động khi trình xem tác vụ windows đang mở! (THẮNG + TAB) Chỉ cần KHÔNG sử dụng chuột !!!
Ngoài ra, hãy đợi tập lệnh tải sau khi Windows khởi động trước khi tạo máy tính để bàn mới hoặc nó sẽ không hoạt động. Điều này có thể mất một chút thời gian tùy thuộc vào số lượng chương trình khởi động bạn có.
Ok, tôi đã thêm một điều nữa để dễ dàng đồng bộ hóa lại tập lệnh với trạng thái máy tính để bàn của bạn. Hiện tại có một phím nóng sẽ hiển thị trạng thái tập lệnh tin rằng các máy tính để bàn sẽ ở trong đó, tất cả những gì bạn phải làm là điều chỉnh máy tính để bàn bằng chuột để phù hợp với tập lệnh và nó sẽ được đồng bộ lại! Đối với tôi với một bàn phím Thụy Sĩ, nó hoạt động tốt khi có '? phím bên cạnh 0 và nó có ý nghĩa với a? trên đó, nhưng trên các bàn phím khác, bạn có thể muốn thay đổi điều này có thể được thực hiện dễ dàng bằng cách thay đổi dòng ngay sau phím nóng cho 0/10 (bắt đầu bằng # ') thành bất cứ điều gì bạn thích.
Trên thực tế, tôi chỉ nhận ra .... miễn là Desktop Count chính xác hơn việc tạo một máy tính để bàn mới sẽ tự động đồng bộ hóa lại giá trị Desktop hiện tại.
(Các dòng bắt đầu bằng; là các nhận xét và không ảnh hưởng đến tập lệnh)
Mã số:
#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}
}