关于在Windows主机与AWS Workspaces(Ubuntu 22.04)中同时记录按键以诊断通信异常的技术咨询
在Windows主机与AWS Workspaces(Ubuntu 22.04)中同时记录按键以诊断通信异常的技术方案
听起来这个按键丢失的问题确实挺闹心的,尤其是作为程序员常用的括号键出问题。你的思路完全没问题——同时在Windows主机和Ubuntu Workspace上记录按键,就能明确是哪一端没收到按键信号。下面给你推荐靠谱的工具和具体操作步骤:
Windows 端按键记录工具及使用方法
AutoHotkey(轻量灵活,免费开源)
这是个老牌工具,不仅能做按键记录,还能自定义快捷键,完全满足你的需求:- 下载安装AutoHotkey后,新建一个文本文件,把后缀改成
.ahk - 粘贴以下脚本到文件中:
#Persistent FileAppend, %A_Now% - 按键记录开始`n, KeyLog.txt SetTimer, LogKeys, 10 return LogKeys: Loop, 255 { if GetKeyState(A_LoopKey, "P") { Key := GetKeyName(A_LoopKey) if (Key = "LButton" || Key = "RButton" || Key = "MButton") continue ; 跳过鼠标按键,只记录键盘 FileAppend, %A_Now% - %Key%`n, KeyLog.txt while GetKeyState(A_LoopKey, "P") ; 避免重复记录长按的按键 Sleep, 50 } } return - 双击运行脚本,它会在后台静默运行,同时在脚本所在目录生成
KeyLog.txt,记录所有按键和时间戳 - 测试完有问题的按键后,右键托盘里的AutoHotkey图标退出,查看日志即可
- 下载安装AutoHotkey后,新建一个文本文件,把后缀改成
PowerShell 脚本(无需额外安装)
如果你不想装软件,用系统自带的PowerShell也能实现简单记录:- 打开PowerShell,运行以下命令(会在当前目录生成
KeyLogPS.txt):$logFile = "KeyLogPS.txt" Write-Output "$(Get-Date) - 按键记录开始" | Out-File $logFile -Append while ($true) { $key = [Console]::ReadKey($true) Write-Output "$(Get-Date) - $($key.KeyChar)" | Out-File $logFile -Append }
注意:这个脚本只能记录可打印字符,对功能键支持有限,但对你要测试的括号键完全够用。按
Ctrl+C停止记录。- 打开PowerShell,运行以下命令(会在当前目录生成
Ubuntu 22.04 端按键记录工具及使用方法
xinput(系统自带,无需安装)
Ubuntu默认自带的xinput可以直接监听键盘输入事件,非常适合诊断:- 打开终端,先运行
xinput list,找到你的键盘设备名称(比如AT Translated Set 2 keyboard) - 记住设备对应的ID(比如
12),然后运行命令开始记录:
替换xinput test <设备ID> | tee ubuntu-keylog.txt<设备ID>为你找到的数字,这个命令会把按键事件实时输出到终端,同时保存到ubuntu-keylog.txt文件里 - 测试完按键后,按
Ctrl+C停止记录,查看日志对比即可
- 打开终端,先运行
evtest(更底层的输入事件记录)
如果xinput的信息不够详细,可以用更底层的evtest:- 先安装工具:
sudo apt install evtest - 运行
evtest,输入对应编号选择你的键盘设备 - 它会记录所有底层输入事件(包括按键按下/释放的状态),测试完按
Ctrl+C停止,也可以把日志重定向到文件:evtest /dev/input/eventX > ubuntu-evtest-log.txt(替换eventX为你的设备路径)
- 先安装工具:
诊断步骤建议
- 同时启动Windows和Ubuntu的按键记录工具
- 连续按下几次
(和)键,故意触发你遇到的丢失问题 - 停止两个工具,对比两边的日志:
- 如果Windows日志里有记录,Ubuntu日志里没有,说明问题出在AWS Workspaces客户端或者WSP协议传输上
- 如果两边日志都有记录,那可能是Ubuntu系统里的某个应用没捕获到按键(不过你说只在Workspace里有问题,这种概率较低)
另外,建议再确认一下Windows和Ubuntu的键盘布局是否完全一致(都设为US QWERTY),有时候布局不匹配也会导致奇怪的按键映射问题。
备注:内容来源于stack exchange,提问作者Steve Lorimer
相关产品推荐
相关产品推荐

