必须先启用adb调试(开启usb调试和网络调试,并执行adb connect 127.0.0.1:58526确认连接成功),再通过powertoys映射键盘按键为adb shell input keyevent指令,或结合scrcpy与joytokey实现手柄操控。

在Win11安卓子系统(WSA)中安装的游戏默认只响应触控或模拟触控操作,无法直接识别物理键盘按键和手柄输入,必须通过Windows层的映射工具将硬件输入转译为安卓系统可识别的虚拟事件。
确认WSA已启用ADB调试
这是所有后续映射操作的前提——没有ADB连接,键盘和手柄指令根本无法送达安卓环境内部。
打开“Windows设置”→“系统”→“开发者选项”,开启【USB调试】和【通过网络调试】两项。若未看到“开发者选项”,先在“关于”页面连续点击“版本号”7次激活。
打开PowerShell(管理员权限),执行:adb connect 127.0.0.1:58526。成功返回connected to 127.0.0.1:58526即表示ADB通道已通。这一步失败,后面全部映射都会无效。
用PowerToys实现键盘按键到安卓操作的映射
PowerToys的“Keyboard Manager”模块能将本地键盘按键实时转换为ADB指令,绕过WSA不支持原生键鼠的限制。
第一步:在PowerToys设置中启用“Keyboard Manager”。
第二步:点击“Remap a shortcut”,添加新映射:
左侧“Shortcut”设为Ctrl + W,右侧“Mapped To”选择“Send shortcut”,填入adb shell input keyevent 19(对应方向键上)。注意:19是Android KeyEvent.KEYCODE_DPAD_UP的标准码,不能写错。
第三步:同理配置其他方向键和常用动作——20(下)、21(左)、22(右)、23(确认/回车)、4(返回)。每个映射必须单独添加,不可批量导入。
⚠️关键提醒:WSA的ADB端口固定为58526,但PowerToys本身不执行adb命令,你必须提前在后台保持一个持续运行的adb forward进程,否则按键按下后无响应。可在启动PowerToys前运行:adb forward tcp:58526 tcp:58526。
用手柄操控WSA游戏(JoyToKey + scrcpy方案)
纯手柄直连WSA不可行,需借助屏幕投射+输入捕获双层中转:先用scrcpy把WSA画面投到Windows桌面,再用JoyToKey把手柄操作映射为鼠标/键盘事件,作用于scrcpy窗口。
方法一:基础投屏映射
下载scrcpy v2.0+(必须支持WSA),解压后双击scrcpy-no-adb.exe。首次运行会自动拉起WSA并建立投屏窗口,窗口标题为“Android Subsystem”。
打开JoyToKey,新建Profile命名为“WSA_Gamepad”。加载北通、Xbox等主流手柄后,在“Stick1:↑”双击→选Mouse→勾选“Up”,Speed设为65。过高会导致光标窜动,过低则响应迟钝。
方法二:精准点击替代触控
将手柄A键映射为鼠标左键单击,B键映射为ESC(触发安卓返回),X键映射为Ctrl+C(用于复制文本类游戏内操作)。所有按键映射目标必须指向scrcpy窗口——在JoyToKey主界面右键→“Set target window”→手动框选scrcpy窗口区域,否则输入会发往错误焦点。
方法三:进阶宏指令(适用于RPG/策略类游戏)
在JoyToKey中为“Left Trigger”绑定一个宏:Delay 50 → Key Down Ctrl → Key Down Shift → Key A → Key Up Shift → Key Up Ctrl。这个组合实际触发的是WSA内Chrome浏览器的全选操作,可用于快速选中任务栏文字或聊天框内容——很多安卓游戏内置WebView,此法比逐字输入高效得多。
验证与故障定位
在scrcpy窗口内按Ctrl+V,若弹出Windows剪贴板内容,说明键盘映射链路(PowerToys→ADB→WSA)已通;推动手柄左摇杆,若scrcpy窗口中光标平滑移动,说明JoyToKey→scrcpy窗口捕获正常。
若手柄移动光标但点击无效,检查JoyToKey中是否误启用了“Use raw input”选项——WSA投屏窗口不兼容Raw Input模式,必须关闭。
执行adb shell getevent -l,在终端中观察是否有KEYBOARD或JOYSTICK类事件输出。无任何输出,证明ADB层未收到输入,问题一定出在PowerToys或JoyToKey的转发配置上。











