C# System.Windows.Input.Keyboard在部分Windows11程序中无响应求助
排查思路与解决方案
权限与兼容性调整
- 分别以管理员身份运行扫码程序和Notepad++,Win11的权限管控比Win10更严格,高权限可能解决输入拦截问题。
- 给扫码程序设置Win10兼容模式:右键程序图标→属性→兼容性,勾选「以兼容模式运行这个程序」并选择「Windows 10」,同时勾选「以管理员身份运行此程序」,应用后重新测试。
Notepad++本地设置排查
- 检查输入限制:打开Notepad++的「设置」→「首选项」→「编辑」,确认未开启「仅接受ASCII字符」等可能过滤输入的选项。
- 切换输入法:将Notepad++的当前输入法切换为系统默认英文输入法,部分扫码程序仅模拟英文键盘输入,输入法切换可能导致接收失败。
- 禁用插件测试:暂时关闭Notepad++的所有插件(「插件」→「插件管理」→禁用全部),排除插件拦截输入的可能。
- 确认编辑状态:检查Notepad++是否处于只读模式,只读状态下无法接收输入。
Windows 11系统层面排查
- 安全软件拦截检查:查看Windows Defender或第三方杀毒软件的拦截日志,确认扫码程序的模拟键盘操作未被判定为恶意行为;可暂时关闭实时保护进行测试(测试后务必恢复)。
- 输入权限验证:打开Win11设置→「隐私和安全性」→「输入隐私」,确保扫码程序被允许访问输入设备。
模拟输入机制适配
- 部分扫码程序依赖
SendInputAPI,Win11对该API的调用要求更严格:可尝试让扫码程序在发送输入前强制激活Notepad++窗口,确保焦点正确;若仍无效,可尝试给扫码程序添加UIAccess权限(需通过代码签名或本地组策略调整相关设置)。
- 部分扫码程序依赖
内容的提问来源于stack exchange,提问作者Jonas Alexander Offersen
相关产品推荐
相关产品推荐

