以编程方式杀死并重启explorer.exe的最简洁方法是什么?

时间:2010-05-14 06:35:07

标签: windows installer process explorer

问候所有人,

我正在开发一个Windows程序,其安装需要重新启动explorer.exe。我知道“重新启动计算机以完成安装”是这里的标准方法,但我希望我的安装程序能够让用户选择只重新启动资源管理器,以便他们可以立即开始使用我的程序。最好的方法是什么?当然,我可以找到并杀死这个过程,但这似乎相当icky。比方说,让Explorer认为用户正在注销并完全关闭吗?

谢谢!

5 个答案:

答案 0 :(得分:2)

这是MSI安装吗?

您是否考虑过使用Restart Manager

重启管理器将检测哪些进程正在保持文件/句柄处于打开状态并需要重新启动,并允许您在不重新启动的情况下自动停止/启动这些进程。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

然后我编写了以下批处理文件,该文件会终止并执行explorer.exe进程:

pskill explorer.exe
psexec -d explorer.exe
exit

您也可以尝试与PSTools的作者联系 Mark Russinovich在TechNet网站上。

答案 3 :(得分:0)

您可以发送WM_ENDSESSION消息。

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

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

答案 4 :(得分:0)

我在我的帖子构建事件中使用了powershell:

get-process explorer | kill

它通常会自动重启