我在通过 VNC 客户端连接时遇到了掉键事件,导致“键卡住”(通常是元键,如CTRL或ALT),而搜索关于如何解决这个问题的常见答案通常是“分别按下并释放每个元键,直到问题解决”。
但是,我发现尝试用这种方式解决这个问题既烦人又费时。此外,如果连接不好,它有时会再次错过 meta 键的“按键抬起”事件,并且仍然使按键卡住。所以我正在寻找一种自动化的方法来做到这一点:
从客户端或服务器端的脚本,是否有办法触发所有元键(CTRL、ALT、SHIFT和WIN/ CMD,左键和右键版本)的“键释放”事件?或者只是一个命令来释放服务器认为当前按下的所有键?或者至少通过某种脚本方式列出服务器端按下的键想都按下了,所以我知道要继续按下并释放哪个键来尝试释放它?
我在服务器端有一台 Mac,因此对于我的情况来说需要 Mac/Linux 解决方案。
答案1
我相信我找到了适用于我的 Mac VNC 服务器的服务器端解决方案;创建这个单行 Applescript,将其保存为应用程序,并在需要时运行。
tell application "System Events" to key up {shift, option, command, control}