首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spy++如何构造它的进程列表?

Spy++如何构造它的进程列表?
EN

Stack Overflow用户
提问于 2011-11-18 09:48:56
回答 3查看 834关注 0票数 3

TL;DR - Spy++工具是如何真正构建其过程列表的?

阶段

我们有一个MFC桌面应用程序(运行在Windows上),因为它不再对任何用户输入做出反应。然而,当通过alt选项卡切换到它时,它会被重新绘制。(它确实接收WM_SETFOCUSWM_ACTIVATE等。它显然没有收到任何鼠标或键盘消息。)

由于应用程序挂在一些模糊,我们拉了几个进程转储,但这些都没有什么帮助到目前为止。输入:

Spy++

我们使用Spy++查找我上面给出的有关该应用程序似乎正在处理的窗口消息的信息。我们通过打开窗口视图来做到这一点

并选择我们的应用程序窗口,并在Messages属性中选择Windows of same processMessages to ViewSelect All

但是,我们首先尝试通过打开过程视图来查看此过程的所有消息。

在Spy++和中,我们的应用程序没有显示在这个进程列表中。在程序正常运行的另一台PC上进行交叉检查,进程通常也会显示在Spy++的进程列表中。

可以从间谍++的Processes 中没有显示该进程,但是该应用的主窗口显示在Windows中这一事实可以推断出该应用程序的任何情况。为什么在Spy++的Processes中没有显示一个主窗口的进程?

此进程列在“任务管理器”和Visual 2005的“附加进程”窗口中。那么这些工具显然使用了一种不同于Spy++的方法来列出进程.?

该应用程序当前挂起的系统是Windows SP2系统,我们使用了Visual 2005附带的Spy++实用程序。

这种行为确实会偶尔出现,但只有在应用程序运行了几天之后才会发生!

EN

回答 3

Stack Overflow用户

发布于 2011-11-25 14:06:12

运行Vista还是以后?您的流程可能被提升,而Spy++则没有。更新版本的Spy++需要提升。所以,尝试显式地提升Spy++,看看这是否有帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-11-18 10:08:35

是的,当然可以从这推断出一些事情。在这种情况下,不要太认真地对待我说的任何事情,我得去看看代码。但是我相信Spy会运行并查看EnumProcesses API。(http://msdn.microsoft.com/en-us/library/ms682629.aspx)

所以,如果你的流程没有出现.人力资源管理

但是,它工作的系统和不工作的系统有什么不同呢?

票数 0
EN

Stack Overflow用户

发布于 2021-06-01 19:24:46

Spy++需要禁用注册表中的以下两个值(0)才能显示进程/线程列表:

代码语言:javascript
复制
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
HKLM\System\CurrentControlSet\Services\PerfProc\Performance

    Disable Performance Counters -> either 0 or not present

想弄清楚它为什么拒绝展示它们。这是个坏笑话--这个调试器需要一个调试器才能让它正常工作!并不是说WinDBG会显示任何有意义的信息,MS甚至没有在他们的符号服务器pfft上提供一个符号文件。

无论如何,它可能不会显示禁用其性能计数器的进程,因为我认为可以根据不同的情况来设置它,至少对于服务是这样的,比如:

代码语言:javascript
复制
HKLM\SYSTEM\CurrentControlSet\Services\.NET CLR Networking\Performance

    Disable Performance Counters

因此,它基本上总是“性能”子项的值。所有这些都是无文档化的,它使用了先进的32. All函数,如"PerfRegQueryValue“和”PerfRegQueryInfoKey“.别问我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8180527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档