徒手帮 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\
相关文章
|
5月前
|
应用服务中间件 Windows
129. SAP ABAP Update Process(更新进程)的概念和设计动机解析
129. SAP ABAP Update Process(更新进程)的概念和设计动机解析
|
5月前
|
人工智能 自然语言处理 Linux
进程(process) vs 线程(Thread)
本文主要介绍了进程和线程的基本概念、区别以及操作系统如何调度线程的方式。同时,还介绍了线程锁的核心原理和实现方式。在多线程编程中,理解进程和线程的概念以及线程锁的使用,对于保证程序的安全性和性能非常重要。
112 0
|
12月前
|
消息中间件
每日一博 - 图解进程(Process)和线程(Thread)区别联系
每日一博 - 图解进程(Process)和线程(Thread)区别联系
58 0
|
2月前
|
Python
python Process 多进程编程
python Process 多进程编程
32 1
|
2月前
|
JavaScript 前端开发
nodejs process进程
nodejs process进程
26 0
|
5月前
|
应用服务中间件 调度 数据库
SAP ABAP Update Process(更新进程)的概念和设计动机解析试读版
SAP ABAP Update Process(更新进程)的概念和设计动机解析试读版
|
11月前
|
存储 SQL Shell
【OSTEP】Abstraction Process | 进程 | 虚拟化 | 进程API
【OSTEP】Abstraction Process | 进程 | 虚拟化 | 进程API
47 0
|
3月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
3月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
94 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
2月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。

相关实验场景

更多