The hotkeys
Ctrl+Alt+Left Arrow and
Ctrl+Alt+Right Arrow
are eaten up by the Remote Desktop Client.
Their only effect is to switch you to back to the host computer.
It looks like this was some intended feature that was never fully programmed
and completed, but there is no way to turn it off.
These hotkeys are not even listed by Microsoft in its official documentation at
Remote Desktop Services Shortcut Keys.
Solution 1 : Use the Microsoft Store version
Another version of RDP can be found in the Microsoft Store at
Microsoft Remote Desktop.
This version does not have this semi-implemented feature, so it lets through
these hotkeys without a problem.
This was verified on Windows 10 version 1903.
Solution 2 : Translate the hotkeys on both client and server
This solution will use AutoHotkey
installed on both client and server, to:
- On the client, translate the above hotkeys to others that are not intercepted
by RDP
- On the server, translate these keys back to the above hotkeys.
You may for example use on the client the following AutoHotkey script "rdp hotkeys_slave.ahk" to convert
Ctrl+Alt+arrow to
Alt+Win+arrow:
#SingleInstance Force
#IfWinActive, ahk_exe mstsc.exe
;Send Alt+Win+Left when user types Ctrl+Alt+Left
^!Left::
send !#{Left}
return
;Send Alt+Win+Right when user types Ctrl+Alt+Right
^!Right::
send !#{Right}
return
The script is restricted to the mstsc.exe process using
#IfWin[Not]Active / #IfWin[Not]Exist.
Unfortunately Autohotkey scripts only work in full screen RDP once they are restarted after activating the fullscreen (See here: How to fix AHK to send keys to RDP fullscreen?) So we need a second script "rdp hotkeys_master.ahk" to achieve this:
#Persistent
SetTimer, ReloadOnRDPMaximized, 500
return
ReloadOnRDPMaximized:
If WinActive("ahk_class TscShellContainerClass")
{
WinGet, maxOrMin, MinMax, ahk_class TscShellContainerClass
if (maxOrMin = 0) {
WinGetPos, PosX, PosY, WinWidth, WinHeight, ahk_class TscShellContainerClass
if (PosY = 0) {
; it is fully maximized therefore reload "script.ahk"
Run "autohotkey" "rdp hotkeys_slave.ahk"
; wait until window gets deactivated so you don't reload it again.
WinWaitNotActive, ahk_class TscShellContainerClass
}
}
}
You may use on the server the following AutoHotkey script to convert
Alt+Win+arrow to
Ctrl+Alt+arrow:
;Send Ctrl+Alt+Left when user types Ctrl+Win+Left
!#Left::
send !^{Left}
return
;Send Ctrl+Alt+Right when user types Ctrl+Win+Right
!#Right::
send !^{Right}
return
To make the scripts run on startup put all of them in the autostart folder on the respective devices (type Win+R and shell:startup)