按如下方式访问 Process.MainWindowTitle 时...
Process[] processes = Process.GetProcessesByName( "iexplore" );
...然后遍历生成的数组,我总是以MainWindowTitle
数组中除一项之外的所有项为空而告终。在我的例子中,我打开了两个 Internet Explorer 窗口,一个带有一个选项卡,一个带有两个选项卡。
运行我的代码,我总是得到我上次活动的窗口和选项卡的 MainWindowTitle - 所有其他人都保持为空。奇怪的是,填充 MainWindowTitle 的进程 ID 总是相同的——如果我在运行我的代码之前激活另一个 IE 窗口或选项卡,进程 ID 总是相同的:
if ( !processes.Any() )
{
MessageBox.Show( "TODO - No matching process found" );
return;
}
if ( processes.Count() > 1 )
{
foreach ( Process currentProcess in processes )
{
// More than one matching process found
checkedListBox1.Items.Add( currentProcess.Id + " - " + currentProcess.MainWindowTitle + " - " + currentProcess.ProcessName );
}
return;
}
因此输出可能是第一次运行,如:
- 第4824章
- 第3208章
- 4864 - 谷歌 - Windows Internet Explorer - iexplore
下一次运行(预先选择另一个 IE 窗口):
- 第4824章
- 第3208章
- 4864 - id 软件 - Windows Internet Explorer - iexplore
我已经阅读了这篇文章,但我没有进一步解决我的问题(而且它似乎进入了一个有点不同的方向)。
为什么我总是只能得到一个非空的 MainWindowTitle?