2011-06-14 73 views
2

我已经做了很多搜索,但我一直没有能够发现一个简单的方法来轻轻地终止XP批处理文件中的浏览器外壳程序。轻轻地终止Explorer.exe

为什么我想要,你问(因为几乎每次有人问这个别人想知道为什么)?答案很简单:我在一天结束时运行批处理作业,这节省了我的工具栏配置。当浏览器shell正常终止时,它会将工具栏配置写入注册表项,然后在本周开始运行CCleaner后导出并恢复。例如,如果explorer以taskkill结尾,它通常无法写入注册表项,并且生成的导出文件并不总是准确反映工具栏的当前配置。

我试过使用CMDOW "program manager" /cls,但这只是提示“关闭Windows”对话框 - 有时即使点击“取消”按钮,它也会使计算机关闭。由于在按住“Ctrl,Alt,Shift”的同时打开“关闭Windows”对话框并点击“取消”将导致浏览器轻轻地死亡,我使用sendkeys查看了一个vbs脚本,但是发送"%{F4}"时认为桌面是最重要的窗口。我想我可能会尝试编写一些HotKeyP宏 - 它具有提升“关闭Windows”对话框的功能 - 但是一旦引发“关闭Windows”对话框,HotKeyP似乎无法访问它。

资源管理器接收到什么信息,以便它知道要轻轻停止,而不是关闭整个计算机 - 这就是我想知道的。

回答

1

以下命令行文本将终止任何EXPLORER.EXE进程但不关闭计算机。

taskkill /fi "imagename eq EXPLORER.EXE" /f /t 

要了解更多关于taskkill的使用/?参数。

+1

谢谢您的回答。我试图使用taskkill来终止浏览器。使用“强制”参数可以工作,但不允许资源管理器保存设置。没有它,注销对话框被引发。对不起,我没有在我的问题中提到。 – Shadeclan 2011-06-20 13:41:54

-1

我不认为微软提供了一种方法来执行您描述的操作,而无需编写脚本浏览器UI。规定的关闭浏览器并保存所有设置的方法是注销。

通常有三种方式来关闭程序:

  1. 了TerminateProcess()
    • 这导致内核停止调度进程线程,和卸载从存储器的过程。正如你正确地指出的那样,这不会给探索者一个保存设置的机会。
    • 这就是“taskkill/f”所做的事情。
  2. 发送WM_CLOSE消息程序的主窗口
    • 程序可以决定如何处理这不过他们想要的。大多数将关闭,但Explorer将它视为注销的信号,这不是你想要的。
  3. 使用一些程序特定的方法要求关闭它。
    • Explorer.exe确实通过GUI提供了这个功能(ctrl + shift +右键单击开始菜单的任何非按钮部分),但它不提供命令行方式来执行此操作。

如果你真的在你想要做什么设置,你可以使用WScript的或其他的UI脚本库来操纵GUI和执行选项3

+0

...或者用HotKeyP创建一个宏。如果像你说的那样,可以通过右键单击开始菜单中的任何非按钮部分来要求资源管理器关闭,这可以解决我的问题。我会试一试 - 谢谢。 – Shadeclan 2011-06-30 12:41:47

+0

我试过了,它不起作用。这是一个新的Vista或Win 7的东西? – Shadeclan 2011-06-30 14:38:30

+0

Vista已有五年历史。它不再具有“新”的资格。我在Windows 7上测试过,它工作。 – 2011-06-30 20:52:21