【问题标题】:Why don't programs just kill and restart explorer.exe?为什么程序不直接杀死并重新启动 explorer.exe?
【发布时间】:2009-05-18 17:36:28
【问题描述】:

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

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

在这样做之前我还应该考虑什么?为什么其他应用程序告诉您重新启动而不是更快的重新启动资源管理器?有安全原因吗?还是只是习惯?

【问题讨论】:

  • 我不确定用户的警报是否有问题。一个简短的警告应该消除所有这些,真的。不过,这是个好问题。我怀疑许多安装人员这样做“只是为了安全”。
  • 在安装程序想要重新启动的所有时间中,您只需要注销然后重新登录的百分比是多少?

标签: windows


【解决方案1】:

杀死并重新启动资源管理器不会完成重新启动系统所做的所有事情:

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

2) 这也可能导致系统出现稳定性问题。我特别注意到我的图形驱动程序在资源管理器关闭/重新启动后没有正确更新的问题。

3) 有点味道 ;) 在安装过程中杀死进程看起来很讨厌。

【讨论】:

  • 在工具中,被更改的注册表键是自动运行键,并且只有自动运行键。其他的事情应该被影响。
  • 如果只是自动运行键,则无需重新启动资源管理器-只需自己启动该过程即可。 :)
  • 这样,当我们使用多张 cd 进行操作时,我们可以确保启用自动运行。我就是这样做的,它对用户计算机的侵入性较小,但是......我不是老板
  • 哇...在我遇到麻烦禁用自动运行后启用自动运行是安装程序做的另一件烦人的事情。也许我有理由不想在插入光盘时自动执行 anything
【解决方案2】:

我发现在资源管理器重新启动后通知区域中的图标没有显示(通常是在它停止响应并且我必须终止它之后)。

根据通知图标,这可能会导致用户问题。

【讨论】:

    【解决方案3】:

    重新启动 Windows 是一项经过充分测试的操作。注销/登录也是。可以期待所有第三方软件都通过重启测试过,几乎所有第三方软件都通过注销、登录测试过。

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

    所以,如果您是在内部分发到一个控制良好的环境,当然,请继续杀死并重新生成 explorer.exe。但是不要这样做,因为您将用户的机器置于测试不佳的状态,并且事情可能会神秘地中断,直到他(s)重新启动。

    【讨论】:

    • 我同意。我认为直接杀死 explorer.exe 只是自找麻烦。
    【解决方案4】:

    可能进行的其他更改需要更多,而不是重新启动 explorer.exe。同样如您所说,重新启动 explorer.exe 对最终用户来说可能非常令人担忧。

    【讨论】:

    • 但是如果程序在安装后通常这样做,它就会停止向它们发出警报。虽然我确实相信我有一个安装程序对我这样做,但我吓坏了。但后来我切换到 linux,然后各种奇怪的事情都可能发生;)
    • 它会停止向他们发出警报,就像安装后重新启动不再向任何人发出警报一样。它从令人震惊到令人讨厌......
    【解决方案5】:

    资源管理器可能具有未保存的状态(打开的窗口、文件夹视图设置等),如果突然重新启动,这些状态会丢失)。如果安装程序会在不询问的情况下杀死我的 explorer.exe,我会讨厌它,而且我不确定我是否会认为它比重新启动有所改进。

    在重启 explorer.exe 无法处理的事情列表中,特别是替换当前正在使用的 DLL 和不监听注册表更改事件但从那里保存信息的程序(explorer.exe 之外) .

    【讨论】:

      【解决方案6】:

      总是需要重新启动资源管理器吗?

      我曾经有一个应用程序安装了一个性能监视器计数器,该计数器应该由我的应用程序和 Perfmon 共享(当它运行时),所以安装它应该只是为了确保任一应用程序都已关闭。简单...除了加载每个 perfmon object dll 并保持它们全部锁定的驱动程序(不记得是哪一个,否则我会为制造商感到羞耻)。因此,我的应用需要重新启动。

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

      【讨论】:

      • 老实说,如果他们在一个word文档中工作了一整天并且没有保存一次,他们应该失去它:D(不严重)
      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

        对于在下次重新启动时发生的已安装的事情,注册表中有很多事情要做;例如,“RunOnce”键下的条目会在下次启动时运行一次。有很多安装应用程序依赖于这种行为;并且由于 Microsoft 没有弃用该功能或​​找到一个好的解决方法,人们继续编写期望此功能并依赖它的软件。

        【讨论】:

          【解决方案9】:

          重新启动资源管理器具有报废用户当前环境的不幸副作用。如果你简单地杀死 explorer.exe,任务栏按钮、待处理的操作等都会丢失。

          【讨论】:

          • 它们不会丢失。在您再次启动 explorer.exe 之前,它们的 invisible 属性将设置为 true。
          • 对,在explorer被杀后不到一秒。
          【解决方案10】:

          为什么不让用户选择是重启还是重启资源管理器。

          请记住,虽然普通用户不会知道这意味着什么或需要什么,所以请确保您的用户确实“技术足够好”。

          【讨论】:

          • 这是一个内部工具,所以不用担心。
          猜你喜欢
          • 2011-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-10
          • 2015-08-30
          • 2020-05-19
          • 2016-01-18
          • 1970-01-01
          相关资源
          最近更新 更多