Windows 10에는 3 개의 가상 데스크톱이 있습니다.
이 데스크톱 중 하나에서 mstsc 전체 화면을 실행합니다.
데스크톱을 전환하려면 windows + ctrl + 왼쪽 또는 오른쪽을 사용할 수 있습니다.
그러나 전체 화면 mstsc에있을 때이 키는 mstsc에 의해 캡처되고 전환이 작동하지 않습니다.
이 행동을 바꿀 수있는 방법이 있습니까?
Windows 10에는 3 개의 가상 데스크톱이 있습니다.
이 데스크톱 중 하나에서 mstsc 전체 화면을 실행합니다.
데스크톱을 전환하려면 windows + ctrl + 왼쪽 또는 오른쪽을 사용할 수 있습니다.
그러나 전체 화면 mstsc에있을 때이 키는 mstsc에 의해 캡처되고 전환이 작동하지 않습니다.
이 행동을 바꿀 수있는 방법이 있습니까?
답변:
나는이 문제에 대한 해결책을 찾고 있었고 단지 하나를 발견했다!
CTRL+ ALT+ HOME는 원격 데스크톱에있을 때 키보드 포커스를 호스트에 다시 제공합니다.
그런 다음 WIN+ CTRL+를 수행 LEFT하거나 RIGHT가상 데스크톱간에 전환 할 수 있습니다 .
이상적이지는 않지만 아마도이 두 가지 단축키를 자동 단축키로 처리 할 것입니다.
stackoverflow
것이지만 여기서는 할 수 없습니다. 감사합니다 +1!
먼저 Windows 키가 원격 컴퓨터에서 작동하기를 원했기 Alt-Tab
때문에 "Windows 키 조합 적용"설정에 대해 "전체 화면을 사용할 때만"이 있습니다.
그런 다음 전체 화면이 표시 될 때 원격 데스크톱에서 벗어날 수있는 키 조합이 거의 없기 때문에 CTRL-ALT-HOME
연결 막대를 가져 와서 로컬 컴퓨터에 대한 제어권을 제공하는 을 사용해야 합니다.
그래서이 자동 핫키 스크립트를 작성했습니다 : switchVirtualDesktopWithRD.ahk . 이 스크립트를 완전히 기반으로 하므로 크레딧을 얻지 않습니다. 난 그냥 내 필요에 맞게 수정했습니다 . 당신은 당신에게 그것을 조정할 수 있습니다 ...
필자의 경우 두 개의 가상 데스크톱 만 있습니다. 첫 번째는 기본 데스크톱이고 두 번째는 전체 화면 원격 데스크톱 클라이언트를 실행하는 곳입니다.
내가 누를 때 스크립트가하는 일 CTRL-ALT-HOME
:
전체 화면 원격 데스크톱 클라이언트를 실행하는 두 번째 가상 데스크톱에있는 경우 먼저 연결 표시 줄이 표시됩니다. 나는 다음 누르 HOME
(다시 키 CTRL
와 ALT
여전히 누름) 내가 다시 첫 번째, 주 바탕 화면입니다. 두 번째 데스크톱에서 전체 화면 세션이 진행되지 않으면 첫 번째 조합은 첫 번째 데스크톱으로 즉시 전환됩니다.
첫 번째 데스크톱에있는 경우 두 번째 데스크톱으로 즉시 전환됩니다.
다시 말해, 항상 CTRL-ALT-HOME
데스크톱 간을 전환 하는 데 사용 합니다.
CTRL-WIN-LEFT
로를 CTRL-ALT-HOME
원격 AHK에서 RDP 연결 표시 줄에 초점 스위치를 트리거합니다. 그런 다음 CTRL-WIN-LEFT
두 번 눌러 데스크탑을 전환해야합니다.
떨어져 건물 전기 판의 대답 I 활성화 것 AHK 스크립트가 Ctrl+ Win+ Left및 Ctrl+ Win+ Right- 즉, 스위치가 RDP 세션 내에서 다른 키를 희생하지 않고, 전체 화면 RDP 세션 내에서 로컬 컴퓨터의 데스크탑에 단축키를 Alt+ Tab모든 여전히와 유사한 RDP 세션 내에서 정상적으로 작동합니다.
원격 컴퓨터에서 일반 바로 가기 키를 사용하려면 RDP 세션을 시작할 때 "Windows 키 조합 적용"설정에 대해 "전체 화면을 사용할 때만"이 있어야합니다.
실제로 스크립트를 AHK 포럼에서 찾은 다른 스크립트를 기반 으로했습니다.
그것이하는 일 :
C:\users\<user>\documents\AutoHotkey.ahk
논쟁없이 ahk를 시작할 때 실행되도록 내를 붙여 넣었습니다 .참고 : 두 개 이상의 가상 원격 데스크톱 (예 : 로컬 가상 데스크톱 하나, 각각에 전체 화면 RDP 창이있는 두 개의 가상 데스크톱)을 사용하면 약간의 버그가 발생하지만 더 이상 작업 할 시간이 없습니다. . 문제는 하나의 가상 원격 데스크톱에서 다른 가상 원격 데스크톱으로 전환 할 때 핫키 바인딩을 해제하고 리 바인드해야하며이를 감지하는 데 문제가 있습니다 (단, RDP 제목 표시 줄에는 다른 창 클래스가 있지만 항상 이것을 선택하십시오).
Ahk 스크립트 :
;setTimer, windowwatch, 500
#persistent
#usehook
SLEEP_VAL := 500
DEBUG := false
keys_bound := false
while true {
;Debug("Waiting")
sleep, SLEEP_VAL
keys_bound := WaitBind()
}
WaitBind() {
WinWaitActive, ahk_class TscShellContainerClass
Debug("bind")
hotkey LWin & Left, ctrl_win_left_key, on
hotkey LWin & Right, ctrl_win_right_key, on
return true
}
WaitUnbind() {
WinWaitNotActive, ahk_class TscShellContainerClass
Debug("unbind")
hotkey LWin & Left, ctrl_win_left_key, off
hotkey LWin & Right, ctrl_win_right_key, off
return false
}
Debug(msg) {
global DEBUG
if (DEBUG) {
tooltip %msg%
settimer, TooltipClear, 2000
}
}
return
z_key:
; simple script for testing - change the z to 'he'
send, he
Debug("done z")
return
j_key:
; testing if we can activate the RDP title bar
send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
Debug("done j")
Return
ctrl_win_left_key:
; we are intercepting all Win+Left combinations so we have to do Win+Shift+Left and Win+Left manually to preserve them inside the RDP
GetKeyState, shiftState, Shift
GetKeyState, ctrlState, Ctrl
if (shiftState = "D") {
; by default in windows Ctrl+Shift+Win+Left will act like Shift+Win+Left - shift takes precedence
Debug("done shift win left")
send {Shift down}{LWin down}{Left}{LWin up}{Shift up}
} else if (ctrlState = "D") {
Debug("done ctrl win left")
; the magic happens here
send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
keys_bound := WaitUnbind()
;Sleep, SLEEP_VAL ;give the OS time to focus on the title bar
send {Ctrl down}{LWin down}{Left}{LWin up}{Ctrl up}
} else {
Debug("done win left")
send {LWin down}{Left}{LWin up}
}
Return
ctrl_win_right_key:
; we are intercepting all Win+Right combinations so we have to do Win+Shift+Right and Win+Right manually to preserve them inside the RDP
GetKeyState, shiftState, Shift
GetKeyState, ctrlState, Ctrl
if (shiftState = "D") {
; by default in windows Ctrl+Shift+Win+Left will act like Shift+Win+Left - shift takes precedence
Debug("done shift win right")
send {Shift down}{LWin down}{Right}{LWin up}{Shift up}
} else if (ctrlState = "D") {
Debug("done ctrl win right")
; the magic happens here
send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
keys_bound := WaitUnbind()
;Sleep, SLEEP_VAL ;give the OS time to focus on the title bar
send {Ctrl down}{LWin down}{Right}{LWin up}{Ctrl up}
} else {
Debug("done win right")
send {LWin down}{Right}{LWin up}
}
Return
TooltipClear:
; just a routine to turn off tooltip after x milliseconds
tooltip
settimer, TooltipClear, off
Return
windowwatch:
ifwinactive ahk_class TscShellContainerClass
{
Debug("bind")
hotkey LWin & Left, ctrl_win_left_key, on
hotkey LWin & Right, ctrl_win_right_key, on
}
else
{
Debug("unbind")
hotkey LWin & Left, ctrl_win_left_key, off
hotkey LWin & Right, ctrl_win_right_key, off
}
Return
Ctrl+Win
. 로컬 데스크톱에서 원격으로 또는 그 반대로 갈 때 때때로 키를 놓았다가 다시 눌러야합니다 . 그것이 작동하지 않는 경우 것을 시도하거나 전송 사이의 지연을 증가시키기 위해 스크립트의 상단에있는 SLEEP_VAL 증가 Ctrl+Alt+Home
하고Ctrl+Win+Left
터치 패드가 있으면 네 손가락 제스처를 시도 할 수 있습니다.
에서 Microsoft 지원 - 윈도우 10에 터치 패드 제스처
가상 데스크톱 전환 : 터치 패드에 손가락 네 개를 놓고 오른쪽 또는 왼쪽으로 밉니다.
Windows 10에서 두 개의 가상 데스크톱으로 작업하고 있습니다.이 데스크톱 중 하나에서 전체 화면 모드로 원격 데스크톱을 통해 Win 7에 액세스하고 있습니다.
이 단일 제스처로 두 가상 데스크톱간에 전환 할 수 있습니다. 그것은 나를 위해 작동합니다.
스크립트를 변경하여 핫키를 눌렀다 놓아야하는 문제를 해결하여 실행할 때 핫키를 바인딩하고 절대 바인딩을 해제하지 않습니다.