Windows – Can’t use three-finger middle-click in remote desktop

mouseremote desktoptouchpadwindows 10

I have a HP laptop. I configured 3-finger tap to simulate a middle click, and it works fine locally on the laptop. However, when I connect to my desktop using Remote Desktop and I try to use the 3-finger tap in the remote session, it instead opens a side panel titled "Project" saying "We can't change the display topology during a remote connection".

The remote computer is a desktop (no touchpad). Both computers are running Windows 10.

How can I get the middle-click functionality in the remote session?

Best Answer

tl;dr: Try using the AutoHotkey script at the end.

I'm on a Lenovo ThinkPad T570, your mileage may vary.

I opened AutoHotkey to see what happens when I touch the touchpad with three fingers. This is what happens on the client side:

VK  SC  Type    Up/Dn   Elapsed Key     
----------------------------------------
5B  05B a   d   6.61    LWin            
A2  01D a   d   0.00    LControl        
A0  02A a   d   0.00    LShift          
85  06D a   d   0.00    F22             
85  06D a   u   0.00    F22             
A0  02A a   u   0.00    LShift          
A2  01D a   u   0.00    LControl        
5B  05B a   u   0.00    LWin            

A three-finger touch is translated to a Left Win + Left Control + Left Shift + F22 key combination. (The OS recognizes F22 key even if it's not present on any physical keyboard I know of.)

This is what happens on the server side:

VK  SC  Type    Up/Dn   Elapsed Key     
----------------------------------------
5B  15B     d   21.77   LWin            
A2  01D     d   0.00    LControl        
A0  02A     d   0.00    LShift          
A0  02A     u   0.00    LShift          ¹
A2  01D     u   0.00    LControl        ²
85  06D h   d   0.00    F22             
85  06D h   u   0.00    F22             
A0  02A     u   0.00    LShift          
A2  01D     u   0.00    LControl        
5B  15B     u   0.00    LWin            
...                 
5B  15B     d   0.64    LWin            
A2  01D     d   0.00    LControl        
A0  02A     d   0.00    LShift          
A0  02A     u   0.00    LShift          ¹
85  06D h   d   0.00    F22             
85  06D h   u   0.00    F22             
A0  02A     u   0.00    LShift          
A2  01D     u   0.00    LControl        
5B  15B     u   0.00    LWin            

As you can see, the ficticious Shift is always released¹ before presssing F22, and the Ctrl key is sometimes released² before pressing the F22.

Running the following AutoHotkey script on the Remote Desktop server translates the relevant key combinations to a Middle Mouse Button click:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

<#F22::MButton  ; Left Win + F22
<#<^F22::MButton  ; Left Win + Left Ctrl + F22

You may want to try adding key combinations including Left Shift (<+) if this doesn't work reliably for you.

Related Question