【问题标题】:Restart Windows' explorer.exe via QProcess通过 QProcess 重新启动 Windows 的 explorer.exe
【发布时间】:2018-01-25 06:42:38
【问题描述】:

起初,Windows explorer.exe 被关闭,桌面屏幕变黑。我的程序需要启动explorer.exe。这是我试过的:

QProcess process;
process.execute("explorer.exe");

问题是这只会弹出一个新的资源管理器窗口,而不是重新激活桌面资源管理器(将黑屏转回桌面)。它的行为应该就像你在 cmdpowershell 中杀死它后运行 explorer.exe 时一样。

【问题讨论】:

  • 你用的是什么windows版本?我刚刚在 Windows 8.1 上检查了您的代码,它按您的预期工作。
  • 刚刚在7上测试过,确实只是打开了一个新窗口而没有重新激活桌面。会尝试解决这个问题,这真的很有趣。
  • 我的环境:Windows 10 64bit

标签: windows qt windows-explorer qprocess


【解决方案1】:

找到解决方案:

QProcess::startDetached("explorer.exe"); //Wrong
QProcess::execute("C:\\Windows\\explorer.exe"); //Wrong
QProcess::startDetached("C:\\Windows\\explorer.exe"); //Right

如果有人知道为什么explorer.exe 会有这样的行为,请分享。

【讨论】:

  • 顺便说一句,你忘了双反斜杠 `\`
  • execute 将启动资源管理器并阻止您的程序,直到资源管理器完成工作,而startDetached 将在其自己的会话中启动资源管理器并且不会冻结您的应用程序。我实际上是打算建议你这样做,但在我的 win7 上,所有这些情况都不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多