我正在尝试获取所有正在运行的MS Word进程,但它始终返回1
。
我怎样才能获得确切的进程数量?我确实打开了多个文件。
Process[] localByName = Process.GetProcessesByName("WINWORD");
foreach (Process p in localByName)
{
if (!String.IsNullOrEmpty(p.MainWindowTitle))
{
Rect NotepadRect = new Rect();
IntPtr ptr = p.MainWindowHandle;
GetWindowRect(ptr, ref NotepadRect);
objSchemeDetail.Top = NotepadRect.Top;
objSchemeDetail.Bottom = NotepadRect.Bottom;
objSchemeDetail.Left = NotepadRect.Left;
objSchemeDetail.Right = NotepadRect.Right;
}
}
答案 0 :(得分:1)
您的问题所依据的整个前提是错误的。您认为每个Word顶级窗口都与一个不同的进程相关联。这种看法是不正确的。 Word的体系结构有一个具有多个窗口的进程。这很简单,可以使用任务管理器程序进行验证。
您真正想要做的是找到与特定流程关联的所有顶级窗口。这是以前多次提出的一个问题。例如:How to enumerate all windows belonging to a particular process using .NET?