7

徒手帮 process explorer 找回丢失的进程列

 3 years ago
source link: https://bianchengnan.gitee.io/articles/find-the-lost-process-name-column-in-process-explorer-back-by-hand/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

目前开发是在华为云桌面里进行的,在远端机器上装了 v15.05 版(很老的版本了)的 process explorer。但是今天打开 process explorer 后,Process Name 列消失不见了。

就是下面这样,是不是少了点什么?

missing-process-name-column

说明:因为华为客户端的安全限制,不能直接截屏。本文中的截图,视频都是在我本机录制的。

第一反应是:难道我不小心把它隐藏了?于是赶紧查看设置,如下图:

view-column

Process NamePID(Process Identifier) 列都是勾选的,而且不可以取消勾选。排除了手动隐藏的可能。难道是列宽太小了?于是尝试拖拽了几次,也没成功。

can-not-show-process-name-column

尝试 spy++

相信很多搞 windows 开发的小伙伴儿应该都用过 spy++ (对应的应用程序名是 spyxx.exe)查看窗口句柄。于是,打开 spy++ ,查看对应的窗口句柄,但是并没有发现有价值的线索。

view-window-by-spyxx

  • 除了 spy++ 可以查看窗口句柄,还有其它比较 “偏门” 的工具可以查看。比如,基于 UIAUI Automation)或 MSAAMicrosoft Active Accessibility )机制的相关工具:UISpy.exe, Inspect.exe, AccEvent.exe 等。但是,这种工具远程机上也没有。

  • 除了查看窗口信息,当然更好的工具是排错神器 process monitor 了。但是远程机上也没有 process monitor

  • 看来工具是用不上了,只能手工排查了。

之前解决过 Sysinternals 系列软件中的 Autorun 不显示的问题,记录在文章 1分钟解救 run 不出来的 Autoruns 中了,感兴趣的小伙伴儿可以读一下。根据上次的经验,Sysinternals 系列工具的配置应该都记录在注册表中了,而且存储在 HKEY_CURRENT_USER 下(很好的设计,只针对当前用户有效,而且设置的时候不需要管理员权限)。于是打开 Registry Workshop,浏览到 process explorer 保存配置的位置——

HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer

setting-reg-key

快速翻看右侧的注册表项。其中的 ProcessImageColumnWidth 引起了我的注意,这个名字起的太形象了,而且值还是 0,很有可能是关键设置。果断关闭 process explorer(这个是常识了,先关闭程序,再改配置),然后修改 ProcessImageColumnWidth 的值为 100,重新启动 process explorer。果然丢失的 Process Name 列又显示出来了。

process-explorer-normal-status

  • 在本地尝试重现的过程中发现这个问题只会出现在老版本(v15.05 及以前)中,新版本(v16.20 及以后的版本)已经做了优化。

  • 其实是可以通过拖动调整列宽的,我当时拖动的位置有些问题(我拖动的是列标题),像下面这样拖动就可以了。

    drag-to-adjust-column

  • Registry Workshop 比系统自带的注册表编辑器更好用,可以试试。
  • spy++ 可以查看窗口句柄,还可以监听窗口消息。
  • Sysinternals 系列工具的配置保存在注册表中 HKEY_CURRENT_USER\Software\Sysinternals\

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK