如何通过C#将窗口标题设置为word应用程序,并在System.Diagnostics.Process中进行访问

本文关键字:Diagnostics System 并在 Process 访问 应用程序 何通过 窗口标题 设置 word | 更新日期: 2023-09-27 18:29:44

我的程序中有以下一组代码,用于设置word应用程序的标题,并试图关闭具有相同标题的winword.exe进程。

Application wordApp=new Microsoft.Office.Interop.Word.Application()
wordApp.Visible = true;                    
wordApp.Application.Caption = "Test Document";
System.Diagnostics.Process[] aProcWrd = System.Diagnostics.Process.GetProcessesByName("WINWORD");
foreach (System.Diagnostics.Process oProc in aProcWrd)
{
 if (oProc.MainWindowTitle=="Test Document")
   oProc.Kill();
}

但是Process.MainWindowTitle总是空的。

如何通过C#将窗口标题设置为word应用程序,并在System.Diagnostics.Process中进行访问

oProc.kill()并不是一个真正优雅的解决方案。你不是用大锤把单词从电脑里敲出来,而是用大锤敲出来。非常适用于程序被冻结的情况,但对于关闭仍按预期工作的程序来说,这并不能真正修复。

一个更干净的解决方案是将您找到的进程投射到一个世界对象中,并要求它们关闭(这也为用户提供了一个保存工作的选项,而不是让窗口变得沮丧)。关于如何做到这一点的例子可以在这里找到:如何关闭Word文档的运行实例?(C#)