Một trong những tính năng tốt nhất của Windows 10Task View, mà bạn có thể sử dụng để tạo máy tính để bàn ảo. Các máy tính để bàn này là một cách tuyệt vời để phân phối và sắp xếp các cửa sổ của các ứng dụng đang mở của bạn. Bạn có thể nhấn Windows key+Tab (giữ phím Windows và nhấn Tab) để xem họ trong Chế độ xem tác vụ .

Chế độ xem tác vụ Windows 10

Tuy nhiên, một tính năng không được cung cấp bởi Microsoft là khả năng chuyển ngay lập tức sang một màn hình ảo cụ thể bằng một phím tắt. Ví dụ, nếu bạn đang trên Máy tính để bàn 2 và bạn muốn chuyển sang Máy tính để bàn 6bạn phải nhấn giữ Windows key+Ctrl và hãy nhấn Right arrow bốn lần. Sẽ dễ dàng hơn nếu có một phím tắt tự động chuyển sang màn hình số 6, bất kể bạn đang sử dụng màn hình nào.

Hướng dẫn này chỉ cho bạn cách tạo phím tắt để chuyển trực tiếp sang bất kỳ màn hình ảo nào theo số. Chúng tôi thực hiện điều này bằng cách sử dụng tiện ích Windows miễn phí, AutoHotkey .

Tạo kịch bản

  1. Trình cài đặt thoát và một tệp văn bản mới sẽ mở trong Sổ tay. Tệp là tập lệnh của chúng tôi. (Tập lệnh là một tệp văn bản thuần túy chứa các lệnh được chạy bởi một chương trình khác, trong ví dụ này, AutoHotkey.)
  1. Sao chép và dán tập lệnh sau vào tài liệu Notepad của bạn:
; 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) {
 StartPos := (i * IdLength) + 1
 DesktopIter := SubStr(DesktopList, StartPos, IdLength)
 OutputDebug, The iterator is pointing at %DesktopIter% and count is %i%.
 ; Break out if we find a match in the list. If we didn't find anything, keep the
 ; old guess and pray we're still correct :-D.
 if (DesktopIter = CurrentDesktopId) {
 CurrentDesktop := i + 1
 OutputDebug, Current desktop number is %CurrentDesktop% with an ID of %DesktopIter%.
 break
 }
 i++
 }
}
;
; This functions finds out ID of current session.
;
getSessionId()
{
 ProcessId := DllCall("GetCurrentProcessId", "UInt")
 if ErrorLevel {
 OutputDebug, Error getting current process id: %ErrorLevel%
 return
 }
 OutputDebug, Current Process Id: %ProcessId%
 DllCall("ProcessIdToSessionId", "UInt", ProcessId, "UInt*", SessionId)
 if ErrorLevel {
 OutputDebug, Error getting session id: %ErrorLevel%
 return
 }
 OutputDebug, Current Session Id: %SessionId%
 return SessionId
}
;
; This function switches to the desktop number provided.
;
switchDesktopByNumber(targetDesktop)
{
 global CurrentDesktop, DesktopCount
 ; Re-generate the list of desktops and where we fit in that. We do this because
 ; the user may have switched desktops via some other means than the script.
 mapDesktopsFromRegistry()
 ; Don't attempt to switch to an invalid desktop
 if (targetDesktop > DesktopCount || targetDesktop < 1) {
 OutputDebug, [invalid] target: %targetDesktop% current: %CurrentDesktop%
 return
 }
 ; Go right until we reach the desktop we want
 while(CurrentDesktop < targetDesktop) {
 Send ^#{Right}
 CurrentDesktop++
 OutputDebug, [right] target: %targetDesktop% current: %CurrentDesktop%
 }
 ; Go left 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. Lưu các tập tin.

Lưu tập lệnh AutoHotkey.ahk đầu tiên của bạn trong Notepad

  1. Tập lệnh này, AutoHotkey.ahk, nằm trong thư mục Tài liệu của bạn. Mở một cái mới Khám phá tệp cửa sổ r (nhấn Windows key+E ) và đi đến Các tài liệu .

AutoHotkey.ahk nằm trong thư mục Documents của bạn

  1. Chạy tập lệnh bằng cách nhấp đúp vào tệp. Bạn sẽ không thấy bất cứ điều gì xảy ra, nhưng AutoHotkey hiện đang chạy tập lệnh.

Làm thế nào nó hoạt động?

Tập lệnh hoạt động bằng cách theo dõi màn hình ảo nào bạn hiện đang sử dụng. Giữ phím win và nhấn một số giữa 19 tự động chuyển sang trái hoặc phải với số lần chính xác để đến màn hình mong muốn. (Nếu bạn nhấn số của màn hình chưa tồn tại, sẽ không có gì xảy ra.)

Kiểm tra các phím nóng mới của bạn

Để kiểm tra, trước tiên hãy tạo một màn hình ảo mới. Để làm điều này, hãy nhấp vào Task View trên Thanh tác vụ (hoặc nhấn Windows key +Tab ), sau đó nhấp vào + New Desktop. Hoặc, sử dụng phím tắt Windows key+Ctrl+D .

Làm điều này một lần cho mỗi màn hình ảo mới mà bạn muốn tạo. Mỗi màn hình bổ sung được định hướng về bên phải của màn hình trước đó.

Bây giờ, bạn có thể chuyển sang bất kỳ máy tính để bàn nào trong số này bằng các phím tắt được xác định trong tập lệnh. Nhấn giữ Windows key và nhấn một số giữa 19, và bạn sẽ tự động được chuyển sang màn hình được đánh số đó. Ví dụ, nhấn Windows key+3 để chuyển sang màn hình ảo thứ ba từ bên trái.

Đang dừng tập lệnh

Để ngừng sử dụng tập lệnh, hãy chuyển đến khay hệ thống của bạn và nhấp chuột phải AutoHotkey trông giống như một chữ “H” lớn màu xanh lá cây để hiển thị Thông báo Windows AutoHotkey .

Nếu bạn không thấy biểu tượng, hãy sử dụng dấu mũ ^ để hiển thị các biểu tượng ẩn.

Menu hệ thống AutoHotkey

Trong menu này, bạn có thể Tạm dừng các phím nóng , Tạm dừng Tập lệnh, hoặc Thoát khỏi AutoHotkey toàn bộ. Bất kỳ hành động nào trong số này đều đưa các phím nóng của bạn trở lại bình thường.

Chạy tập lệnh của bạn tự động khi Windows khởi động

Để chạy tập lệnh tự động mỗi khi bạn khởi động Windows, hãy di chuyển tập lệnh vào thư mục Khởi động của bạn.

Trong Windows 10 thư mục Khởi động được đặt tại:

 [Your home folder]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

Thư mục này thường bị ẩn, vì vậy bạn chỉ có thể truy cập nó trong Chương trình quản lý dữ liệu nếu bạn chọn ViewView Hidden Files ở đầu cửa sổ Explorer.

Tuy nhiên, bạn cũng có thể truy cập trực tiếp vào thư mục Startup bằng cách nhập đường dẫn đầy đủ của thư mục vào hộp Run. Nhấn Windows key+R để mở hộp Run, sau đó nhập đường dẫn thư mục đầy đủ. Bạn có thể sử dụng biến môi trường %APPDATA% để tự động điền vào đầu tên đường dẫn. Ví dụ, bạn có thể nhập cái này vào hộp Run:

 %APPDATA%MicrosoftWindowsStart MenuProgramsStartup

Khi bạn nhấn Enterthư mục sẽ mở ra trong cửa sổ File Explorer mới.

Bây giờ hãy di chuyển tập lệnh của bạn vào thư mục này. Nếu bạn vẫn còn Documents mở trong một cửa sổ khác, kéo và thả AutoHotkey.ahk vào thư mục Khởi động.

Di chuyển AutoHotkey.ahk vào thư mục Khởi động Windows 10 của bạn

Nếu bạn quyết định rằng bạn không muốn tập lệnh tự động chạy mỗi khi khởi động Windows, hãy mở lại thư mục này và di chuyển tập lệnh đến một nơi khác. Bạn luôn có thể chạy nó theo cách thủ công bằng cách nhấp đúp vào nó, bất kể nó ở đâu trên máy tính của bạn.

Ghi chú bổ sung

Tập lệnh này ghi đè các phím tắt mặc định của Windows cho Win+(Number)thường mở các mục trên thanh tác vụ của bạn (Win+1 mở mục đầu tiên, v.v.). Tuy nhiên, một số ứng dụng Windows cài sẵn như Settings hoặc Store phớt lờ AutoHotkey’s script. Nếu bạn đang ở một trong những cửa sổ này khi thử phím nóng, nó sẽ sử dụng hành vi phím nóng của Windows và mở thứ gì đó từ Thanh tác vụ thay vì một màn hình mới. Một điều khác cần ghi nhớ là AutoHotkey thực sự là chuyển đổi trái và phải giữa các máy tính để bàn ảo của bạn một cách nhanh chóng, từng cái một. Nếu nó va vào một màn hình ảo nơi một trong những ứng dụng đặc biệt này đang mở, nó sẽ ngừng chuyển đổi và vẫn ở trên màn hình đó.

Rất tiếc, không thể tắt các phím tắt mặc định của Windows, điều này thật bất tiện, nhưng trừ khi bạn mở một trong các cửa sổ ứng dụng này, AutoHotkey kịch bản hoạt động tốt. Tập lệnh thường hoạt động hoàn hảo với 95% các chương trình khác của bạn.

Tuy nhiên, nếu thích, bạn có thể chỉnh sửa AutoHotkey script để sử dụng một tổ hợp phím khác.

Chỉnh sửa tập lệnh AutoHotkey của bạn

Mở Notepad (StartWindows AccessoriesNotepad).

Trong Notepad, mở AutoHotkey. Nếu bạn đã mở thư mục Startup, bạn có thể kéo và thả biểu tượng vào cửa sổ Notepad để mở tệp.

Hoặc, bạn có thể mở nó bằng cách vào FileOpen trong Notepad và nhập tên tệp %APPDATA%MicrosoftWindowsStart MenuProgramsStartupAutoHotkey.ahk.

Khi tệp được mở, bạn có thể thực hiện các thay đổi đối với tập lệnh để phù hợp với nhu cầu của mình. Ví dụ: nếu bạn muốn sử dụng tổ hợp phím nóng Caps Lock+ (Số)hãy tìm những dòng này trong 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)

Trong những dòng này, hãy thay đổi LWin đến CapsLock:

 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)

Lưu các thay đổi của bạn và nhấp đúp vào tập lệnh để cập nhật nó vào AutoHotkey. Nếu bạn mắc phải bất kỳ lỗi nào trong tập lệnh của mình, AutoHotkey không chạy nó và cung cấp cho bạn một thông báo lỗi. Nếu không, nó sẽ hỏi bạn xem bạn có muốn cập nhật tập lệnh đang chạy hay không:

Lời nhắc xác nhận tập lệnh cập nhật AutoHotkey

Chọn Yes để làm cho các thay đổi mới của bạn có hiệu lực.

Nếu bạn có ý tưởng cho một tổ hợp phím nóng khác, bạn có thể thay đổi nó thành bất kỳ tổ hợp phím nóng nào chưa được sử dụng.

Chọn một tổ hợp phím

AutoHotkey có các từ và ký tự đặc biệt riêng mà nó sử dụng để đại diện cho các phím bàn phím trong các tập lệnh của nó. Ví dụ: Ctrl được biểu thị bằng dấu chấm than. Để sử dụng Ctrl+ (Số) dưới dạng tổ hợp phím nóng của bạn, bạn có thể thay đổi “CapsLock &” đến “!”Trong tập lệnh của bạn. Sau đó, các dòng sẽ trông như thế này:

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

Lưu ý rằng khi bạn sử dụng một biểu tượng thay vì một từ, bạn không nên sử dụng ” & ”Trong cú pháp script. Quy tắc này là một trong những quy tắc đặc biệt AutoHotkey sử dụng trong ngôn ngữ kịch bản của nó.

Bạn có thể tìm thấy một danh sách đầy đủ tất cả các từ và ký hiệu đặc biệt cho AutoHotkey tập lệnh trên Danh sách phím AutoHotkey .
Trên đây là Sử dụng AutoHotkey để chuyển đổi Màn hình ảo trong Windows 10. Nếu bạn có bất kỳ câu hỏi nào liên quan đến các bước nói trên, hãy helpsly.net biết trong phần bình luận. helpsly.net sẽ liên hệ với bạn để có giải pháp trong thời gian sớm nhất.