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

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

缘起

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

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

missing-process-name-column.png

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

排查

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

view-column.png

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

can-not-show-process-name-column.gif

尝试 spy++

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

view-window-by-spyxx.gif

其它思路

  • 除了 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.png

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

process-explorer-normal-status.png

说明

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

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

总结

  • Registry Workshop 比系统自带的注册表编辑器更好用,可以试试。
  • spy++ 可以查看窗口句柄,还可以监听窗口消息。
  • Sysinternals 系列工具的配置保存在注册表中 HKEY_CURRENT_USER\Software\Sysinternals\
相关文章
|
6天前
|
应用服务中间件 Windows
129. SAP ABAP Update Process(更新进程)的概念和设计动机解析
129. SAP ABAP Update Process(更新进程)的概念和设计动机解析
44 1
|
6天前
|
人工智能 自然语言处理 Linux
进程(process) vs 线程(Thread)
本文主要介绍了进程和线程的基本概念、区别以及操作系统如何调度线程的方式。同时,还介绍了线程锁的核心原理和实现方式。在多线程编程中,理解进程和线程的概念以及线程锁的使用,对于保证程序的安全性和性能非常重要。
49 0
|
7月前
|
消息中间件
每日一博 - 图解进程(Process)和线程(Thread)区别联系
每日一博 - 图解进程(Process)和线程(Thread)区别联系
41 0
|
9月前
|
iOS开发
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
140 0
|
6天前
|
应用服务中间件 调度 数据库
SAP ABAP Update Process(更新进程)的概念和设计动机解析试读版
SAP ABAP Update Process(更新进程)的概念和设计动机解析试读版
24 0
|
6月前
|
存储 SQL Shell
【OSTEP】Abstraction Process | 进程 | 虚拟化 | 进程API
【OSTEP】Abstraction Process | 进程 | 虚拟化 | 进程API
31 0
Python线程锁(Thread Lock)和进程锁(Process Lock)
Python线程锁(Thread Lock)和进程锁(Process Lock)
|
SQL 分布式计算 安全
jps查看进程出现「xxxx -- process information unavailable」
jps查看进程出现「xxxx -- process information unavailable」
1162 0
jps查看进程出现「xxxx -- process information unavailable」
|
12月前
|
Oracle 关系型数据库
|
6天前
|
存储 Linux Shell
Linux:进程等待 & 进程替换
Linux:进程等待 & 进程替换
30 9

相关实验场景

更多