使用 C++ 执行 CMD 命令

Executing CMD commands using C++

我正在尝试使用此命令让我的电脑休眠

system("C:\Windows\System32\psshutdown -d -t 0");

如果我使用 cmd 它工作正常,但是当我 运行 在 cpp 中使用它时,我得到了这个

'C:\Windows\System32\psshutdown' is not recognized as an internal or external command, operable program or batch file.

WOW64 上的 32 位应用程序 运行 将放在 file system redirection 下。因此,如果您的应用程序是 32 位应用程序,调用 system("C:\Windows\System32\psshutdown -d -t 0"); 将在 C:\Windows\SysWOW64 中查找 psshutdown.exe 并失败。您有一些解决方案:

  • 改用 Sysnative 访问真正的 System32 文件夹:system(R"(C:\Windows\Sysnative\psshutdown -d -t 0)");
  • Turn off file system redirection 显式(一般应避免)
  • 或者最好将您的应用程序重新编译为 64 位应用程序