【问题标题】:a Batch file that uses nircmd.exe使用 nircmd.exe 的批处理文件
【发布时间】:2016-08-22 14:21:48
【问题描述】:

我正在尝试使用 qt 运行批处理文件,该批处理文件正在使用 nircmd.exe 程序,如下所示:

@echo off
nircmd setprimarydisplay 2
timeout /t 10
nircmd setprimarydisplay 1
exit

我正在尝试在 QT 中运行这一行:

QProcess::startDetached("cmd", QStringList() << "/c" << "C:\\Users\\User\\Desktop\\tmp.bat");

当我运行我的 QT 代码时,它显示“'nircmd' 未被识别为内部或外部命令、可运行程序或批处理文件。”

nircmd.exe 位于 c:\windows\system32,计算机路径正在检测到正确的位置。

可能是什么问题?

谢谢

【问题讨论】:

  • 从命令行手动启动批处理文件是否有效?
  • x86/x64 架构不匹配可能是个问题。
  • 当我从命令行启动它时它确实有效。只有当我使用 qt 时它才不会

标签: c++ qt cmd exe qprocess


【解决方案1】:

我已经弄清楚了,问题出在 .bat 文件中,它应该看起来像这样:

c:\windows\system32\nircmd setprimarydisplay 2

【讨论】:

  • c:\windows\system32 应该在您的路径中。如果这解决了您的问题,则说明您遇到了 PATH 环境变量的问题。尝试在批处理文件中打印它以找出它包含的内容。
  • PATH 不是问题。当您尝试从 qt 或 cmd 命令运行 bat 文件时,它可能会出现问题并且无法找到 nircmd(在这种情况下),因为我的操作系统是 64 位,所以它在 c:\windows\ 中寻找 nircmd.exe sysWOW64 代替
猜你喜欢
  • 1970-01-01
  • 2022-10-18
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多