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

2020-11-20 09:16:48 来源: INeng财经

当窗口最大化时,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问题。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。