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/