目的:某一个程序打开多个进程,我想对这个程序的多个进程分别进行处理(是进程不是线程)现在所知道的手段:通过GetProcessesByName 将该程序打开的所有进程放入一个数组,返回值都是一些PID,不适合人工进行判断需要解决的困难:如何依据所获得的PID得到改进程窗体的名字?????下面举例说明:打开多个记事本文档(测试1.txt、测试2.txt、测试3.txt、测试4.txt。。)窗体名字分别为(测试1.txt-记事本、测试2.txt-记事本、测试3.txt-记事本、测试4.txt-记事本。。)
仅当进程有图形界面时,该进程才具有与其关联的主窗口。如果关联进程没有主窗口(因而 MainWindowHandle 为零),则 MainWindowTitle 为空字符串 ("")。如果刚启动了一个进程,并且想使用其主窗口标题,则请考虑使用 WaitForInputIdle 方法让进程完成启动,从而确保创建了主窗口句柄。否则,系统将引发异常。
Process process = null;
foreach (Process p in processes)
{
//根据 p.MainWindowTitle进行处理
}