c#获取进程窗口标题

标签 c# arrays window mainwindow

    proc.MainWindowTitle.Contains("e")

如何使用“MainWindowTitle”获取所有包含“e”打开的当前窗口的窗口标题,而不仅仅是主窗口,并将它们存储到字符串数组中?

编辑:

     string[] toClose = {proc.MainWindowTitle};
                for (int i = 0; i < toClose.Length; i++)
                {
                    string s = toClose[i];
                    int hwnd = 0;

                    hwnd = FindWindow(null, s);

                    //send WM_CLOSE system message
                    if (hwnd != 0)
                        SendMessage(hwnd, WM_CLOSE, 0, IntPtr.Zero);

最佳答案

代码片段

string[] result = new string[50];
int count = 0;
Process[] processes = Process.GetProcesses();
foreach(var process in processes)
{
    if (process.MainWindowTitle
               .IndexOf("e", StringComparison.InvariantCulture) > -1)
    {
        result[count] = process.MainWindowTitle;
        count++;
    }
}

请查看此 question (和接受的答案)指导我的回答。

编辑:

如果我没理解错的话,你想检索进程主窗口标题的列表。

分析下面的代码,toClose 变量总是存储一个标题:proc.MainWindowTitle 值。

string[] toClose = { proc.MainWindowTitle };

您必须使用我原始答案的 foreach 语句检索每个窗口标题。然后,您必须在建议的解决方案中使用 result 变量,而不是在您的代码段中使用 toClose 变量。

关于c#获取进程窗口标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887211/

相关文章:

c# - 表达式树上的 ToString 产生格式错误的输出

c# - 使用 LINQ 从两个不同的列表创建对,其中条目具有相同的属性

windows - 在窗口调整大小时调整 Powershell 屏幕缓冲区的大小

r - R:两个输出窗口?

c# - 如何在asp.net mvc 中为属性路由添加默认参数

c# - 组合框索引和非连续索引值

Python:将 ctypes_ubyte 数组转换为字符串

ios - 如何从数组中获取特定值的对象

c - 如何在c中获取char数组的一部分

Javascript 的 window.open 功能不一致,没有按预期打开弹出窗口