You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt调用Windows屏幕键盘QProcess返回-2错误及脚本执行异常

解决Qt调用Windows屏幕键盘(osk.exe)失败的问题

问题原因

64位Windows系统中,32位程序访问C:\Windows\System32目录时会被系统自动重定向到C:\Windows\SysWOW64,但屏幕键盘osk.exe是仅存在于System32的64位程序,因此32位Qt程序无法找到该文件,导致调用失败。

解决方案

方案1:使用Sysnative路径绕过重定向

直接修改Qt代码中的调用路径,替换为Sysnative目录:

int exitCode = QProcess::execute("c:/Windows/Sysnative/osk.exe");

方案2:修改bat脚本中的路径

将myscript.bat里的命令改为:

c:\Windows\Sysnative\osk.exe

之后Qt调用脚本的代码无需修改,即可正常执行。

方案3:编译64位Qt程序

若项目支持64位编译,直接将Qt程序编译为64位版本,此时访问C:\Windows\System32不会触发重定向,原代码可正常运行。

内容的提问来源于stack exchange,提问作者TenG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:05:42