Windows 为什么不';t程序只是终止并重新启动explorer.exe?

Windows 为什么不';t程序只是终止并重新启动explorer.exe?,windows,Windows,我知道很多程序一旦安装(或更新注册表),它们需要一些东西来刷新值。这可以通过终止并重新启动explorer.exe来完成,但是大多数浏览器不会这样做,而是要求您重新启动计算机。一个需要很长时间的过程 我目前正在编写一个只供技术人员使用的工具,它对注册表进行了一些更改,需要重新启动(或重新启动explorer.exe)才能生效。我不必担心我的用户被explorer.exe重新启动吓到,所以这不是问题 在做这件事之前,我还需要考虑什么?为什么其他应用程序会告诉您重新启动,而不是更快地重新启动资源管理

我知道很多程序一旦安装(或更新注册表),它们需要一些东西来刷新值。这可以通过终止并重新启动explorer.exe来完成,但是大多数浏览器不会这样做,而是要求您重新启动计算机。一个需要很长时间的过程

我目前正在编写一个只供技术人员使用的工具,它对注册表进行了一些更改,需要重新启动(或重新启动explorer.exe)才能生效。我不必担心我的用户被explorer.exe重新启动吓到,所以这不是问题


在做这件事之前,我还需要考虑什么?为什么其他应用程序会告诉您重新启动,而不是更快地重新启动资源管理器?有安全原因吗?或者这只是一种习惯?

可能已经进行了其他更改,这些更改需要的不仅仅是重新启动explorer.exe。正如您所说,重新启动explorer.exe可能会让最终用户非常担心。

我发现,在重新启动explorer后(通常是在它停止响应并且我必须杀死它之后),通知区域中的图标不会出现问题


根据通知图标的不同,这可能会导致用户出现问题。

重新启动资源管理器会产生一个不幸的副作用,即取消用户的当前环境。如果简单地杀死explorer.exe,任务栏按钮、挂起的操作等都将丢失。

为什么不让用户选择是重新启动还是重新启动explorer


但是请记住,普通用户不知道这意味着什么,也不知道这意味着什么,所以请确保您的用户确实“足够专业”。

浏览器可能有未保存的状态(打开的窗口、文件夹视图设置等),如果突然重新启动,这些状态将丢失)。我讨厌安装程序不经请求就杀死我的explorer.exe,我不确定我会认为这比重新启动要好


在重新启动explorer.exe无法处理的问题列表中,特别是替换当前正在使用的DLL和程序(在explorer.exe之外),这些程序不侦听注册表更改事件,但保存来自注册表更改事件的信息。

是否总是需要重新启动explorer

我曾经有一个应用程序安装了一个性能监视器计数器,该计数器应该由我的应用程序和Perfmon(在运行时)共享,所以安装它应该只是为了确保其中一个应用程序已关闭。简单的。。。除了加载每个perfmon对象dll并将其全部锁定的驱动程序(记不起是哪一个或我将命名为制造商)。因此,我的应用程序需要重新启动


现在,如果您有一个工具,可以确定哪些进程锁定了要安装的文件,并在用户必须决定的情况下关闭它们,那么这些进程中的一个可能对Windows很重要(例如工作站服务或svchost),或者对用户很重要(例如Word有一天未保存的工作)(这可能是一个坏例子)。

终止并重新启动explorer并不能完成重新启动系统所能完成的一切:

1) 任何当前运行的应用程序都不会刷新

2) 这也会导致系统的稳定性问题。我特别注意到,在浏览器关闭/重新启动后,我的图形驱动程序没有得到正确更新


3) 它只是有点臭;)在安装过程中终止进程似乎很讨厌。

使用重新启动选项,而不是刷新explorer.exe。人们已经预料到,Windows上安装的大多数软件都使用重新启动,因此用户在安装软件时习惯于重新启动,这使他们有机会关闭任何其他窗口并保存数据。其次,正如前面所指出的,重新启动explorer.exe会在没有警告的情况下清空当前屏幕,使其看起来好像出了什么问题,所有信息都丢失了

对于下次重新启动时发生的已安装内容,在注册表中可以完成很多操作;例如,“RunOnce”键下的条目在下次启动时运行一次。有很多安装应用程序依赖于这种行为;而且,由于微软没有弃用该功能或找到一个好的解决办法,人们一直在编写软件,期望并依赖该功能。

重新启动Windows是一项经过良好测试的操作。注销/登录太困难。您可以预期所有第三方软件都已通过重新启动进行了测试,并且几乎所有软件都已通过注销、登录进行了测试

您认为有多少是通过kill&respawn explorer.exe测试的?可能没有那么多,当然也没有那么彻底


因此,如果您是在内部分发到一个控制良好的环境中,那么当然,请继续杀死并重新启动explorer.exe。但不要这样做,因为您正在将用户的机器置于一个测试非常糟糕的状态,在他重新启动之前,事情可能会神秘地中断。

我不确定用户的警报是否有问题。一个简短的警告应该可以消除这一切,真的。不过,这是个好问题。我怀疑许多安装程序这样做“只是为了安全”。在所有这些安装程序想要重新启动的时候,有多少百分比的安装程序只需要您注销然后重新登录?但是如果程序在安装后通常这样做,它将停止向他们发出警报。虽然我相信我已经有一个安装程序对我这样做,我吓坏了。但后来我转向了linux,然后各种奇怪的事情都会发生;)它将停止向他们发出警报,就像安装后重新启动不再向任何人发出警报一样。它从警报变成了烦人…这是一个内部工具,所以这不是一个问题。在该工具中,正在更改的注册表项是自动运行项,而仅是自动运行项。如果只是自动运行键,则无需重新启动资源管理器,只需启动即可