标题:C#如何关闭word进程
只看楼主
lw19890506
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2009-3-30
结帖率:60%
已结贴  问题点数:10 回复次数:4 
C#如何关闭word进程
我在添加引用的com里面添加了word组件,也就是Microsoft Word 11.0 Object Library,然后用下面的代码打开电脑里面的word文件:
Word.Application app = new Word.Application();
Word.Document doc = null;

object fileName = url;
object missing = System.Reflection.Missing.Value;
object readOnly = true;
object isVisible = true;
object index = 0;

doc = app.Documents.Open(ref fileName, ref missing, ref readOnly,
    ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref isVisible, ref missing,
    ref missing, ref missing, ref missing);
这样打开word文件之后,然后关闭程序。程序并没有终止word的进程,在任务管理器里的进程里总有个WINDOWS.EXE没有关闭。我试了好多方法都无法在程序里面关闭word进程。关不掉这个进程,原有的word文件就删不掉了,总是提示“无法关闭,另一程序正在使用...”。求高手指点!
(doc.Close();和app.Quit();都没用!)
搜索更多相关主题的帖子: 进程 word 
2009-10-21 14:02
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
得分:10 
可以去参考一下Execl组件退出方法,应该类似..

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2009-10-21 15:56
Yyzhenzhen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-12-23
得分:0 
//获取文件目录
           string fileName = @"filename";

            //开始转换
            //生成操作对象
            Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.ApplicationClass();
            Microsoft.Office.Interop.Word.Documents documents =word.Documents;
            Type wordType = word.GetType();
            Type docType = documents.GetType();

            //打开文件
            Microsoft.Office.Interop.Word.Document document = (Microsoft.Office.Interop.Word.Document)
                docType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, (object)documents, new Object[] { fileName, true, true });
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
2010-04-11 10:35
冰晶羽扇
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-17
得分:0 
请问楼主如何解决这个问题的,我现在很纠结,谢谢~~~~
2012-12-17 19:40
小明123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-7-10
得分:0 
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("WINWORD")) {
                p.Kill();
            }
2015-08-07 08:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-289361-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.354715 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved