Windows任务管理器,远比你想象中的复杂

Windows 任务管理器(Windows Task Manager)的原始作者 Dave Plummer 近日在 Reddit 开帖分享关于任务管理器的冷知识和设计理念,并解答了网友的部分疑问。

在微软工作了十几年的 Dave 是从头开始构建任务管理器的开发者,大约1994年,他在家中的书房里编写出了任务管理器(TaskMgr),尽管当时他还只是一名新手,NT 内核的开发者看到后依旧让 Dave 将任务管理器加入到内核的主分支中。这就意味着开发任务管理器将成为他的工作,并且需要继续打磨以使它成为 Windows 系统的官方部分。

按照 Dave 最初的设想,任务管理器会以共享软件的形式提供,他计划将其出售给有需要的使用者,不过由于 NT 内核开发者的建议,任务管理器最后成为了一款免费应用并与 Windows 捆绑在一起。任务管理器于1996年首次随 Windows NT 4.0 一起提供,此后 Windows 的用户都能通过该应用检查 CPU 负载或杀死进程。 

除了任务管理器,Dave 还参与了三维弹球(Space Cadet pinball)的开发和移植工作,编写了 Zip Folder 的 UI 和文件管理部分,以及参与开始菜单、shell、计算器、ole32 和产品激活等产品的开发工作。

Dave 表示任务管理器是自己最引以为豪的应用程序之一,因为它可能是有史以来第一个最复杂,至少在视觉效果上是最复杂的应用程序,并且在任意尺寸下完全调整任务管理器的窗口大小都不会出现任何抖动情况。当时的应用对内存要求十分苛刻,所以任务管理器的大小保持在 100K 以下。GDI32 和 User32 的同事也提供了不少帮助。

Windows任务管理器,远比你想象中的复杂_第1张图片

Dave 分享的关于任务管理器的一些使用技巧:

  • 如果任务管理器挂起或崩溃,可通过按下 Ctrl-Shift-Esc 组合键启动另一个。Winlogon 会寻找一个现有的实例,并尝试在10秒内重新启动它。如果旧的任务管理器没有在这段时间内以秘密代码进行回应,那么另一个任务管理器将被启动。如此一来,只要有可使用的资源,就可启动任务管理器。

  • 如果资源不足,任务管理器会在简化模式(reduced mode)下加载,例如只加载进程页面(如果确实有这样的需求)。它是为数不多的不会在出现问题时直接“失败并退出”的应用程序之一。

  • 如果任务管理器内部出现损坏,先关闭或杀掉进程。然后在重启的同时按下 Ctrl-ALT-Shift 组合键,任务管理器在启动时发现此组合键,会将所有的内部设置重置为出厂设置。

  • 使用 Ctrl-Shift-Esc 组合键可在没有 Shell 的帮助下启动任务管理器,所以如果 Shell/Explorer 处于挂起状态,可通过此组合键调出任务管理器,然后重置或重启 Shell。即使托盘消失,也可以通过此组合键启动任务管理器。

  • 如果 Shell 无法启动或处于挂起状态,可以尝试使用任务管理器,它有一个模式,在此模式下,任务管理器会在没有任何引用 shell32.dll 的情况下加载,并允许在没有开始菜单的情况下启动 CMD.EXE 等程序。

  • 任何在进程表中正在执行的进程,右键点击"显示文件位置"即可查看进程的二进制文件。

  • 理论上可通过任务管理器杀死任何进程,如果用户拥有权限,它甚至可以升级权限以启用调试权限来杀死应用程序。如果有连任务管理器都不能杀死的进程,说明内核出现了问题。

  • 可在进程页上添加额外的列或删除其他列,并拖动它们进行重新排序。
    Windows任务管理器,远比你想象中的复杂_第2张图片

任务管理器比大部分人认识到的更为复杂,因为它诞生之初就旨在解决用户在需要该应用程序时可能遇到的大多数情况。这些年来,微软没有对任务管理器的底层进行改动。因此,上面介绍的所有使用技巧不仅适用于旧版本 Windows,同样也适用于 Windows 10。

—————END—————

喜欢本文的朋友们,欢迎长按下图关注公众号程序员小灰,收看更多精彩内容

给个[在看],是对小灰最大的支持!

你可能感兴趣的:(Windows任务管理器,远比你想象中的复杂)