你的位置:首页 > ASP.net教程

[ASP.net教程]c#结束winword.exe进程、

最近在做一个c#生成word的功能、调用了微软自带的COM组件。 生成完以后发现有一个winword.exe无法关闭、调试或修改代码都没有搞明白。  遂强制关闭进程了。

      System.Diagnostics.Process[] myPs;      myPs = System.Diagnostics.Process.GetProcesses();      foreach (System.Diagnostics.Process p in myPs)      {        if (p.Id != 0)        {          string myS = "WINWORD.EXE" + p.ProcessName + " ID:" + p.Id.ToString();          try          {            if (p.Modules != null)              if (p.Modules.Count > 0)              {                System.Diagnostics.ProcessModule pm = p.Modules[0];                myS += "/n Modules[0].FileName:" + pm.FileName;                myS += "/n Modules[0].ModuleName:" + pm.ModuleName;                myS += "/n Modules[0].FileVersionInfo:/n" + pm.FileVersionInfo.ToString();                if (pm.ModuleName.ToLower() == "winword.exe")                  p.Kill();              }          }          catch          { }          finally          {          }        }      }

 

另生成word时还有一个问题:每次生成的word最后都会有一个空页、想办法删除、查阅了网上,但是拿过来都无法解决、遂请教各位有没有什么办法。

 Word.Range range1, range2;        // 跳转种类        object objWhat = Word.WdGoToItem.wdGoToPage;        // 跳转位置        object objWhich = Word.WdGoToDirection.wdGoToLast;        // 转向最后一页        WordApp.Selection.GoTo(ref objWhat, ref objWhich, ref Nothing, ref Nothing);        // Range取得        range1 = WordApp.Selection.Range;        range2 = WordApp.ActiveDocument.Range(ref Nothing, ref Nothing);        object start = range1.Start;        object end = range2.End;        // 删除最后一页        WordApp.ActiveDocument.Range(ref start, ref end).Delete(ref Nothing, ref Nothing);

这个是从网上找到的。但是在我这里无法起到效果、我是先生成word、往word插入数据完成以后SaveAs()前再执行这一段代码。求指导。