我有一台 HP 笔记本电脑。我配置了三指点击来模拟中键单击,它在笔记本电脑本地运行良好。但是,当我使用远程桌面连接到我的桌面并尝试在远程会话中使用三指点击时,它会打开一个标题为“项目”的侧面板,显示“我们无法在远程连接期间更改显示拓扑”。
远程计算机是台式机(无触摸板)。两台计算机均运行 Windows 10。
如何在远程会话中获取中键单击功能?
答案1
tl;dr:最后尝试使用 AutoHotkey 脚本。
我使用的是联想 ThinkPad T570,您的里程可能会有所不同。
我打开 AutoHotkey,看看当我用三根手指触摸触摸板时会发生什么。这是客户端发生的情况:
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
三指触摸可转换为Left Win
+ Left Control
+ Left Shift
+组合键。(即使据我所知,任何物理键盘上都没有此键,F22
操作系统也会识别它。)F22
服务器端发生的情况如下:
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
如你所见,虚拟键Shift
总是在按下之前被释放F22
,而Ctrl
键是有时在按下 之前释放² F22
。
在远程桌面服务器上运行以下 AutoHotkey 脚本将相关的组合键转换为鼠标中键单击:
#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
如果这对您来说不太可靠,您可能需要尝试添加包括Left Shift
( ) 在内的组合键。<+