轻轻终止Explorer.exe

时间:2011-06-14 18:11:24

标签: windows-xp batch-file explorer

我已经做了很多搜索,但是我还没有找到一种简单的方法来轻轻终止XP批处理文件中的资源管理器shell。

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

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

资源管理器接收了什么消息,以便它知道轻轻终止而不是关闭整台计算机 - 这就是我想知道的。

2 个答案:

答案 0 :(得分:1)

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

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

要了解有关taskkill的更多信息,请使用/?参数。

答案 1 :(得分:-1)

我不认为Microsoft提供了一种方法来执行您描述的内容而无需编写Explorer UI脚本。关闭资源管理器并保存所有设置的规定方法是注销。

关闭程序通常有三种方法:

  1. 了TerminateProcess()
    • 这会导致内核停止调度进程线程,并从内存中卸载进程。正如您正确指出的那样,这并不能让探险者有机会保存其设置。
    • 这就是“taskkill / f”的作用。
  2. 将WM_CLOSE消息发送到程序的主窗口
    • 程序可以决定按照自己的意愿处理。大多数人会关闭,但资源管理器将其视为注销信号,这不是你想要的。
  3. 使用一些特定于程序的方法要求它关闭。
    • Explorer.exe通过GUI提供此功能(在开始菜单的任何非按钮部分按住ctrl + shift +右键单击),但它没有提供命令行方式来执行此操作。
  4. 如果您确实已经准备好了,可以使用wscript或其他UI脚本库来操作GUI并执行选项3.