访问 Windows 10 任务管理器进程列表

     2023-04-13     181

关键词:

【中文标题】访问 Windows 10 任务管理器进程列表【英文标题】:Accessing windows 10 task manager process list 【发布时间】:2020-09-09 18:14:35 【问题描述】:

当涉及到 Windows 7 任务管理器时,我很容易获得进程计数等,因为进程存储在传统的列表视图控件中,我可以使用 SendMessage 函数访问该控件。然而,对于 explorer/win10 任务管理器/等,存储进程的列表控件似乎不是传统控件,似乎是自定义控件。我想知道是否有关于 Microsoft 在其较新的系统应用程序中使用的自定义控件的任何文档,和/或我是否可以使用 SendMessage 或类似我之前所做的类似的东西访问它们?

 //Get the handle of the list..you can find the handle in win7&10 pretty easily
 FindWindowExA(...parent,IntPtr.Zero,"SysListView32","Processes");//=listview handle
 
 //Sending a message to get the number of processes for instance, works in windows 7 only
 SendMessageA(process list handle,(IntPtr)0x1004,IntPtr.Zero,null);//=process count

如果没有,是否值得尝试调试我自己如何访问列表,或者这是一个坏主意?为什么?我有一个 c# 应用程序,使用 PInvoke 移植 C++ 方法没有问题。谢谢

【问题讨论】:

您能选择一种语言吗? 为什么要从任务管理器中获取该列表?只需使用docs.microsoft.com/en-us/windows/win32/psapi/… 从任务管理器获取进程列表听起来很……奇怪。为什么不能通过代码***.com/questions/648410/… 正常执行此操作? Alexei Levenkov 我不想只获取进程列表。我想访问进程列表(包括内存、cpu 等)的控制句柄,并让我可以完全访问列表视图,就像我之前对 Windows 7 所做的那样,此外,列表非提升任务管理器上显示的进程数有时与 Process.GetProcesses().Where(owner==environment.username) 不同,因此更准确。不管我的目标是不可变的 (题外话:当你删除它时,我正要回答你的另一个问题***.com/questions/64070927/…。它可能是重复的,所以不能重新打开,但godbolt.org/z/rcWcox 表明编译器在练习。有关内存源操作数性能的更多信息,另请参阅Micro fusion and addressing modes 和agner.org/optimize。) 【参考方案1】:

不要那样做。任务管理器没有做任何魔术。它使用 Windows API 来获取进程列表、枚举它并获取详细信息。你正在做的事情实际上比简单地复制任务管理器在内部做的事情更难。 Process Status API (psapi) 是一个很好的起点,还有其他 API 可以获取资源使用信息等。所有需要弄清楚的是“漫步”WINAPI 文档(诚然,这里和那里很少)。如果有疑问,请使用调试器中断任务管理器并查看它调用了哪些 API,或使用depends 工具查看它使用了哪些 API,以便您了解在哪里查看。您还可以使用 IDA-Pro 等逆向工程工具进行部分反汇编并查找 API 调用。

【讨论】:

我会使用什么调试器来解决这个问题? 普通的 Visual Studio 调试器。您可以使用它附加到进程。它应该从 Microsoft 的在线服务器中为您的 Windows 版本提取符号,因此 API 和其他库调用将具有有意义的符号名称。

win10任务栏假死无反应怎么办

方案一:重启“Windows资源管理器”。直接按键盘组合键“Ctrl+Alt+Del”打开“任务管理器”,切换到“进程”选项卡,选中“Windows资源管理器”项,点击“重新启动”按钮。待”Windows资源管理器“重启完成后,再尝试右击任务栏... 查看详情

通过 SWT 获取任务管理器列表?

...法使用SWT获取当前正在运行的所有进程的列表(类似于在Windows上执行tasklist.exe/tlist.exe)?如果有,是否有示例代码可用?理想情况下,这将仅以编程方式完成(没有第三方工具)。我的应用监控进程列表,需要支持Windows2000/Serv... 查看详情

在Windows任务管理器中更改Java进程描述[重复]

】在Windows任务管理器中更改Java进程描述[重复]【英文标题】:Changejavaprocessdescriptioninwindowstaskmanager[duplicate]【发布时间】:2012-11-0813:47:10【问题描述】:是否有命令行参数来设置JVM报告给windows任务管理器的标题?我所有的java进... 查看详情

windows10怎么看进程的pid

参考技术A方法1:通过任务管理器查看按ctrl+alt+delete键调出任务栏管理器,打开进程依次点击查看----选择列---在弹出的窗口中在PID前面打勾,带你及确定,在任务栏管理器的进程中PID下面的就是该进程的进程号!方法2:通过命... 查看详情

进程资源管理器和任务管理器之间的区别[关闭]

...losed]【发布时间】:2013-05-1818:08:29【问题描述】:以下是Windows7中进程资源管理器(左)和任务管理器(右)的屏幕截图。任务管理器中的进程列表按PID排序。如您所见,其中缺少一些进程(csrss.exe、wininit.exe、services.exe. 查看详情

windows10桌面白屏

...载设备中的第三方杀毒、管家、优化软件。2、同时按【Windows徽标键+R】,输入【msconfig】,按回车(Enter)。3、点击【服务】>【隐藏所有Microsoft服务】>【全部禁用】(若您启用了指纹识别功能,请不要关闭相关服务)。4、启动【... 查看详情

win10双击程序没反应怎么破

操作步骤:1、重启“Windows资源管理器”。直接按键盘组合键“Ctrl+Alt+Del”打开“任务管理器”,切换到“进程”选项卡,选中“Windows资源管理器”项,点击“重新启动”按钮。待”Windows资源管理器“重启完成后,再尝试右击... 查看详情

win10结束一个进程(任务管理器打开方法)

Win10如何打开任务管理器? Win10打开任务管理器的方法汇总方法一:运行打开任务管理器命令方法二:按任务管理器快捷键Ctrl+Shift+ESC.方法三:从任务栏右键菜单打开任务管理器方法四:从Win+X系统快捷菜单打开任务管理器方... 查看详情

在任务管理器 C# 中提交进程的大小

...3【问题描述】:我需要在C#中获取进程的“提交大小”(Windows任务管理器>详细信息)。乍一看,Process类不提供相关属性。有人可以帮帮我吗?已编辑privatestaticvoidShowCommitSize(stringprocessName)Proces 查看详情

任务列表与任务管理器内存

】任务列表与任务管理器内存【英文标题】:tasklistvs.taskmanagermemory【发布时间】:2015-07-0221:34:17【问题描述】:您好,提前致谢。任务列表中的内存(您在cmd中运行)和那个GUI任务管理器有什么区别。我注意到浏览器进程的内... 查看详情

windows10打开任务管理器怎么选择关系设置

windows10打开任务管理器怎么选择关系设置右键点击桌面左下角的开始按钮,在弹出菜单中选择“任务管理器”菜单项就可以打开任务管理器了。第一次打开是精简模式,我们点击左下角的“详细信息”按钮这时就可以打开任务管... 查看详情

windows查看文件被哪个进程占用

参考技术A查看方法:打开任务管理器(快捷键Ctrl+Shift+Esc)。或者鼠标在桌面任务栏空白处右击选择任务管理器打开。选择 性能选项卡3.点击下方的资源监视器4.选择概述选项卡5.选择 “磁盘”6.在“磁盘”下方弹出的列... 查看详情

windows任务管理器和任务列表中显示不同的内存使用情况

】windows任务管理器和任务列表中显示不同的内存使用情况【英文标题】:DifferentmemoryusagedisplayinwindowsTaskManagerandtasklist【发布时间】:2015-04-0116:01:48【问题描述】:我最近尝试从Redis2.4.6迁移到2.8.19。当我使用460MB的DB文件运行Redis... 查看详情

如何从任务管理器进程列表中的进程列表中区分不同的JavaWS应用程序?

】如何从任务管理器进程列表中的进程列表中区分不同的JavaWS应用程序?【英文标题】:HowtodifferentiatebetweendifferentJavaWSapplicationsfromthelistofprocessesinthetaskmanagerprocesslist?【发布时间】:2016-08-2607:12:35【问题描述】:我正在使用JavaWS... 查看详情

linux里面top相当于windows下任务管理器吗?

题主你好,可以这么理解.正常情况下在windows下的任务管理器中可以查看都有哪些进程,相应的进程占用的cpu,内存等情况.top中也能看到这些情况.但windows系统管理器中你可以对进程进行操作,如杀死某个进程,但top中就不行了.-----下... 查看详情

在一行下重新组合多处理任务(Windows 10 任务管理器)

】在一行下重新组合多处理任务(Windows10任务管理器)【英文标题】:RegroupMultiprocessingTasksunderasinglerow(Windows10TaskManager)【发布时间】:2017-11-2821:25:54【问题描述】:你好,我不知道在哪里发布这样的问题,而且我在谷歌上找不... 查看详情

如何在windows任务管理器中查找oracle.exe进程对应实例

你要看实例名?那可以在运行框中输入services.msc打开服务进程表,在里面查找含有oracle的服务,其中一项服务名就是实例名参考技术ACtrl+F 参考技术B你在任务管理器打字打oracle就有了 查看详情

什么是 Windows 任务管理器中的“转储文件”?

】什么是Windows任务管理器中的“转储文件”?【英文标题】:whatisa"dumpfile"inwindowstaskmanager?【发布时间】:2015-12-1314:48:23【问题描述】:我知道在Windows中,您可以通过转到任务管理器->进程->右键单击​​该进程来生... 查看详情