Microsoft的mstsc会将特殊密钥转发到远程计算机


当窗口最大化时,Microsoft的mstsc会将特殊密钥转发到远程计算机 。在Windows平台上,大多数远程桌面应用程序对特殊键的行为都不佳 。Realvnc做得更好,您可以对其进行配置以将特殊密钥留给本地计算机 。因此,主要问题是我们可以在本地计算机或远程计算机上使用Alt-Tab,但不能同时在两者上使用!
如果您经常使用远程桌面应用程序在多个系统上工作,这将非常令人沮丧 。
如果您不熟悉AutoHotKey,请先阅读以下内容:使用Windows版AutoHotKey减少击键
热键翻译
远程登录应用程序仍未很好地支持最需要的热键转换功能 。
保留热键并将其翻译/重新映射到Alt-Tab将使客户端和远程计算机都感到满意 。
Alt-Tab与普通热键有些不同,因为Alt键可以处于保持位置,而Tab键可以被按下并释放以进行窗口导航 。
我们在这里有两个选择:本地操作重新映射了Alt-Tab,或者远程操作重新映射了Alt-Tab 。
在重新映射过程中应该很好地跟踪序列 。
很难跟踪序列并将其转换为远程计算机,因此本地计算机最好使用重新映射的Alt-Tab 。
以下步骤说明了如何通过编写AutoHotKey脚本来解决此问题 。
在焦点开关上重新注册热键
首先,当焦点在本地和远程计算机之间切换时,我们应该重新注册热键 。
大多数远程逻辑应用程序将获取键盘输入,并使先前注册的热键无效 。因此,我们需要检查哪个窗口处于活动状态并定期注册适当的热键 。
避免多次注册
如上所述,Alt-Tab具有内部状态,并且多重注册会破坏内部状态 。
因此,我们需要跟踪最后一个活动窗口,并且仅在切换活动窗口时才进行热键注册 。
失去对远程机器的关注
按下LWin和Tab,从远程计算机上失去焦点 。
我仍然没有弄清楚本地计算机的哪个窗口实际上可以处理/响应Alt-Tab按键,因此我浪费了一个本地键盘热键,从而获得了远程登录应用程序的关注 。
IfWinNotExist将找到任务栏的处理程序,应该不会失败 。此功能还将设置的任务栏设置为默认窗口 。因此,WinActivate将使任务栏从远程登录应用程序获取焦点 。
重新映射LWin,Tab和CapsLock键
将LWin和Tab重映射为Alt-Tab,将LWin和CapsLock重映射为Shift-Alt-Tab 。
本地计算机获得焦点后,只需启用AutoHotkey提供的重映射功能 。
在此阶段,随着远程登录应用程序释放了键盘,原始的Alt-Tab键仍可在本地计算机上使用 。
Alt-Tab的最终AutoHotkey脚本
放在一起,我们将为AutoHotKey提供以下代码,当您将桌面远程连接到另一台计算机时,它将解决Alt-Tab问题 。
【Microsoft的mstsc会将特殊密钥转发到远程计算机】

    推荐阅读