3

大家好,

我正在开发一个 Windows 程序,其安装需要重新启动 explorer.exe。我知道“重新启动计算机以完成安装”是这里的标准方法,但我希望我的安装程序可以让用户选择只重新启动资源管理器,以便他们可以立即开始使用我的程序。最好的方法是什么?当然,我可以找到并终止该进程,但这似乎很恶心。是否有一些技巧可以让 Explorer 认为用户正在注销并干净地关闭?

谢谢!

4

5 回答 5

2

这是 MSI 安装吗?

您是否考虑过使用重启管理器

重新启动管理器将检测哪些进程正在打开文件/句柄并需要重新启动,并允许您自动停止/启动这些进程而无需重新启动。

于 2010-05-14T18:48:33.980 回答
1

我可以尝试调用 ExitProcess 或 TerminateProcess 来停止 explorer.exe。

于 2010-05-14T06:40:31.550 回答
1

我不知道你是否可以实现这个,但我从以下位置下载了 PsTools:

http://technet.microsoft.com/en-us/sysinternals/bb896649

然后我编写了以下批处理文件,该文件杀死然后执行 explorer.exe 进程:

pskill explorer.exe
psexec -d explorer.exe
exit

您还可以尝试在 TechNet 站点上与 PSTools Mark Russinovich 的作者取得联系。

于 2011-06-06T20:35:08.703 回答
0

您可以向它发送WM_ENDSESSION消息。

这可能会欺骗它认为计算机正在关闭。然后它有望释放所有资源,关闭所有打开的资源管理器窗口等。

然后当它关闭时,您可以重新启动该过程。

于 2010-05-14T06:45:11.170 回答
0

我在我的后期构建事件中使用 powershell,如下所示:

get-process explorer | kill

它通常会自动重启正常

于 2012-01-22T00:18:47.207 回答