Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中获取所有打开的窗口(通过特定进程)的名称?_C#_.net_Windows_Window - Fatal编程技术网

C# 如何在c中获取所有打开的窗口(通过特定进程)的名称?

C# 如何在c中获取所有打开的窗口(通过特定进程)的名称?,c#,.net,windows,window,C#,.net,Windows,Window,我目前正在寻找一种方法,如果可能的话,用c语言从一个特定的进程中获取所有打开窗口的标题/名称。因此,一个进程可以有多个窗口,我刚刚找到process.MainWindowTitle命令,但我需要在此进程下运行的所有窗口的名称,而不仅仅是MainWindowTitle。是否有命令/方法获取列表/数组中的所有窗口标题?我在网上搜索了一下,但没有找到任何有用的或者我能理解的东西。如果有人有办法做到这一点,并能向我解释,那就太棒了 谢谢你,阿基拉 编辑:我找到了这个链接,但我无法让它工作,我不明白那里发

我目前正在寻找一种方法,如果可能的话,用c语言从一个特定的进程中获取所有打开窗口的标题/名称。因此,一个进程可以有多个窗口,我刚刚找到process.MainWindowTitle命令,但我需要在此进程下运行的所有窗口的名称,而不仅仅是MainWindowTitle。是否有命令/方法获取列表/数组中的所有窗口标题?我在网上搜索了一下,但没有找到任何有用的或者我能理解的东西。如果有人有办法做到这一点,并能向我解释,那就太棒了

谢谢你,阿基拉

编辑:我找到了这个链接,但我无法让它工作,我不明白那里发生了什么。因此,如果有人理解这一点……或者如果不只是让它在控制台中打印出所有滴度。我会非常感激的

using System;
using System.Diagnostics;
using System.Linq;  

//will only get process with main window title property that is not empty

Process[] processlist = Process.GetProcesses();
var processTitle = processlist.Where(c => !string.IsNullOrEmpty(c.MainWindowTitle)).Select(c => c.MainWindowTitle).ToList();
.Wherec=>!string.IsNullOrEmptyc.MainWindowTitle是仅选择非空字符串的主窗口标题的部分。然后Selectc=>c.MainWindowTitle只获取每个进程的MainWindowTitle属性。ToList列出与列表中的Where条件匹配的所有值,因为MainWindowTitle的属性是string

更新的答案,几乎还是一样

string processname = ""; //the process you want to capture
Process[] processlist = Process.GetProcesses();
var processTitle = processlist.Where(c => c.ProcessName == processname).ToList();
同样的解释,现在您提供的进程c.ProcessName==ProcessName现在只检索您提供的特定进程名称。您希望捕获,现在可以调试/捕获所需的详细信息

或者参考这个解释


我更新了我的问题。现在我想要的更清楚了。这不是我想要的,因为只包含了主窗口标题,而不是每个窗口的标题。@AkiraK。更新了我的答案,据我所知,您将提供流程名称吗?