解除 VNC 键粘连的脚本?

解除 VNC 键粘连的脚本?

我在通过 VNC 客户端连接时遇到了掉键事件,导致“键卡住”(通常是元键,如CTRLALT),而搜索关于如何解决这个问题的常见答案通常是“分别按下并释放每个元键,直到问题解决”。

但是,我发现尝试用这种方式解决这个问题既烦人又费时。此外,如果连接不好,它有时会再次错过 meta 键的“按键抬起”事件,并且仍然使按键卡住。所以我正在寻找一种自动化的方法来做到这一点:

从客户端或服务器端的脚本,是否有办法触发所有元键(CTRLALTSHIFTWIN/ CMD,左键和右键版本)的“键释放”事件?或者只是一个命令来释放服务器认为当前按下的所有键?或者至少通过某种脚本方式列出服务器端按下的键都按下了,所以我知道要继续按下并释放哪个键来尝试释放它?

我在服务器端有一台 Mac,因此对于我的情况来说需要 Mac/Linux 解决方案。

答案1

我相信我找到了适用于我的 Mac VNC 服务器的服务器端解决方案;创建这个单行 Applescript,将其保存为应用程序,并在需要时运行。

tell application "System Events" to key up {shift, option, command, control}

答案2

根据 Darth Android 的建议,这是自动热键 脚本我使用。它应该释放CtrlAltShiftWinKey

Send {Ctrl Up}
Send {Alt Up}
Send {Shift Up}
Send {LWin Up}
Send {RWin Up}

将其保存为类似 的内容CtrlAltShiftWinKeyUp.ahk

如果您安装了 AutoHotKey,您可以.ahk直接运行该文件。如果没有,您可以编译通过.exe使用Ahk2Exe或类似的东西。

请注意,此答案仅适用于视窗系统。有一些 *NIX编译器对于 AutoHotKey 脚本,但我还没有测试过它们。

相关内容