# Windows remote desktop - how to untrap keyboard?

I have two monitors, will a full-screen remote desktop session running on one of them, and regular windows programs running on the other.

When one of the other programs have focus, I can Alt+Tab between the windows normally, and one of the choices that I can Alt+Tab to is the remote desktop.

Once I switch to the remote desktop, the keyboard is "trapped" by the remote desktop, so that further Alt+Tab's switch between the programs open in the remote desktop.

Is there a keyboard shortcut that "un-traps" the keyboard while the remote desktop has the focus, so that a subsequent Alt+Tab will switch to one of the programs on my other monitor?

(I am used to VirtualBox virtual machines where there is a key (usually Right Ctrl) which does precisely that, i.e. un-traps the keyboard from the VM.)

• I don't know about un-trapping via hot-key, but there's a setting in MSTSC that will disable command key usage entirely within the VM. – Iszi Jun 13 '11 at 20:25
• I call it the ALT-TAB-TRAP – lode Jul 18 '20 at 19:29

When full screen and set active, there is no way to "untrap" keys.

However, based on your comments on the other answer, if you just want a plain keyboard only method of getting out of Remote Desktop, try the following:

Press Ctrl+Alt+Pause/Break.

This will take you out of full screen mode and "untrap" the keys, meaning you can do Alt+Tab. To get back to full screen mode, simply do the same shortcut.

• This is slightly inconvenient as you have to re-maximize the window when you return to it, but I guess it'll do. – HighCommander4 Jun 13 '11 at 21:31
• Ctrl+Alt+Pause/Break will also maximize the window. – AndreasHassing Apr 18 '18 at 9:06

I wanted to press Ctrl+Alt+Pause/Break but accidently hit Press Ctrl+Alt+Home.

I found that this moves the focus out of the maximized window to the title bar and after that Alt+Tab is working.

Think this is slightly more handy ..

• BAM! this is the answer. it should be noted, though, that you have to be quick. one is not able to hold control and tab through the list of applications and think about where one wants to land. focus returns to the remote desktop window quickly if you don't make a selection. as such, it's best to just hit the ctrl+alt+home and then alt+tab back to the prior window and then move more carefully from there. – Dave Rael May 27 '14 at 21:22
• @DaveRael When I hit Ctrl+Alt+Home I don't have to be quick - it seems to be permanent until I click back into the RDC window (this is on Win10). Actually, I've now got the oppose problem of untrapping the keyboard: I now can't get the RDC window back in focus without clicking on it with the mouse! – Charles Roper May 25 '16 at 10:20
• My experience is the same as @CharlesRoper in Windows 10. Untrapping is easy with Ctrl+Alt+Home. Getting RD back into focus is more difficult. – JohnnyO Oct 18 '16 at 6:40
• I decided to use Ctrl+Alt+Pause/Break instead of Ctrl+Alt+Home because the former is better at setting focus back to RD after untrapping. So this is my typical workflow: Ctrl+Alt+Pause/Break, then work on the host Windows, and when I'm ready to go back to RD, then Alt+Tab into it and then Win+Up to make it full-screen and it has focus again. This seems like the only reliable way to get focus back to RD without using the mouse. – JohnnyO Oct 18 '16 at 6:56
• @CharlesRoper Might be late (I came here hunting the Ctrl-Alt-Home combination) but for me (when RDPing from Windows 10), simply pressing Esc after Ctrl-Alt-Home will return control to the full-screen RDP session (or Alt-Home away, then Alt-Home back). – TripeHound Oct 23 '19 at 7:37

Before connecting to the remote computer, you can change in the properties (local sources) to never send keyboard shortcuts to the remote pc. By default its set to: Only when in full-screen. When set to local, certain keyboard shortcuts that are different than what you normally use become active.

Alt-tab becomes alt-pageup.
Ctrl-alt-del becomes ctrl-alt-end.

Like Bertram said, Ctrl+Alt+Home gives focus to the title bar so that things like Alt+Tab go to the local desktop.

I've further found that hitting ESC gives focus back to the remote desktop. (On Windows 10, I didn't have the time-out problem that @JohnnyO reported.)

• Not sure why this was downvoted... this (including using Esc which I'd found independently) works for me when RDPing from a Windows 10 machine. – TripeHound Oct 23 '19 at 7:40
• Hm, Esc not working for me to return the focus from the RDP window to inside of the RDP window. Using Windows 10 as well. – Borislav Ivanov Jun 2 '20 at 6:09
• Oh, it's actually working, but kind of buggy. If you've just used Ctrl + Alt + Home to move focus out, then Esc is working, but if you've used some additional shortcuts like Alt + Tab or Ctrl + Win + <Arrow> afterwards, then Esc is not working. – Borislav Ivanov Jun 2 '20 at 6:12

# New Version

Windows 10 Home, Windows 10 Home

Nothing should go wrong, but since this grabs Left Mouse Button and Enter, probably save all your work first.

I was pretty awful at AutoHotKey when I wrote this. This utility is one of the things that got me learning AHK, although hough I never took it very far.

This version of the script functions much better. It's also adapted from my script to allow a VirtualBox Virtual Machine to do the same thing

While RDC is open and focused, it uses ALT+Tab to trigger ALT+Page Down which is built into Terminal Services to activate the server's 'Task Switcher'.

#SingleInstance, Force
hostkey = RCTRL                                            ; set this to your VirtualBox HOSTKEY
boxMode := ""
Hotkey, <#Tab, WinTabbing
Hotkey, >#Tab, WinTabbing
Return

TabFinish:
Send, {ALT UP}
RDCKeysState("Off")
Return

Tabbing:
Send, {Right}
Return

WinTabbing:
WinGetTitle, Title, A
StringRight, TitleEnd, Title, 25

RDCKeysState("On")
If (TitleEnd = "Remote Desktop Connection") and (not Title = "Remote Desktop Connection") {
; RDC mode, but not the launcher window

Send, {Alt down}{PgDn}                                 ; Press and hold alt, and press pgdn

} Else {                                                 ; Host mode

Send, {ALT Down}{TAB}
Sleep, 200                                             ; Sleep to wait a split-second for Alt-Tab window to appear
iter := 0                                              ; loop tracker
Loop {
iter := iter+1
if (!WinExist("Task Switching") Or iter > 60) {      ; If Alt+tab is gone, or it's been 30 seconds
Send, {ALT UP}
Break
}
Sleep, 500
}
}
Return

RDCKeysState(toggle) {
; This function maps all the ways that a user might end the alt-tab box.
Hotkey, Enter, TabFinish, %toggle%                   ; Map Enter, Click, and their alt-counterparts to TabFinish()
Hotkey, !Enter, TabFinish, %toggle%
Hotkey, LButton, TabFinish, %toggle%
Hotkey, !LButton, TabFinish, %toggle%
Hotkey, *LWIN UP, TabFinish, %toggle%
Hotkey, *RWIN UP, TabFinish, %toggle%
Hotkey, *Tab, Tabbing, %toggle%
}

; if you get the error 'could not close the previous instance of the script,
; while ever trying to reload the script, you need to right click it and select


# Old Version

Windows 10 Home, and Windows 2012 Server

I wanted functionality to do both, so I wrote an AutoHotKey script for my local machine.

I gave my local computer full access to Windows Key Commands even while RDC is maximized

And then wrote an AutoHotKey script (I am not well-versed in it) that captured WIN+TAB (#Tab), while RDC is open and then uses that and the ALT+Page Down built into Terminal Services to activate the server's ALT+Tab. Once it's open, you can navigate with arrow keys and enter/click to select.

If you can improve upon this, please do, and share.

#persistent
#Tab::WinTabbing()
return

WinTabbing() {
WinGetTitle, Title, A                             ; Get Title
StringRight, TitleEnd, Title, 25                  ; RDC is 25 letters long
If (TitleEnd = "Remote Desktop Connection")       ; Check that an RDC is active. This will probably have
; issues with the inital "connect to dialog of RDC
{
Send, {Alt down}{PgDn}                        ; Press and hold alt, and press pgdn
Hotkey, Enter, Entering, On                   ; Map Enter, Click, and their alt-counterparts to Entering()
Hotkey, !Enter, Entering, On
Hotkey, LButton, Entering, On
Hotkey, !LButton, Entering, On
return
}
}
; There is no return statement at the end of this function, because we want
; Control Tab to work when focused in any other window.

; I tried to map Tab/Alt Tab (because alt is still pressed) to Right arrow
; and Control Tab/Control Alt Tab to left arrow. I was unable to get it to work.
; I left the functions in comments if anyone want to try
; Righting()
;   Send, Right
;   return
; }

; Lefting() {
;   Send, Right
;   return
; }

Entering() {
Send, {Alt}{Enter}                                ; Releases Alt, and makes the selection
Hotkey, Enter, Entering, Off                      ; See WinTabbing()
Hotkey, !Enter, Entering, Off
Hotkey, LButton, Entering, Off
Hotkey, !LButton, Entering, Off
return
}
`

Remote desktop generally doesn't have an "untrap" key, but the mouse is never trapped. Simply move it anywhere on the other monitor, click so that the RDP client loses focus, and then your keys will work fine with the rest of your system until you give the RDP client focus again.

• The whole point of using keyboard shortcuts is that you don't have to touch the mouse... – HighCommander4 Jun 13 '11 at 21:03
• @HighCommander4: You would need to look into 3rd-party RDP clients, then. The Microsoft one is all or nothing. – Darth Android Jun 13 '11 at 21:09