命名空间 :System.Diagnostics

以前在word的时候,经常碰到word进程产生一大堆,怕关错了,把用户自己打开的word也关闭,一直搞忽悠,今天上网花了10块钱,下了个文件,给我了一点启发,总于可以实现只关闭程序中打开的,,,我自己测试了,是可以实现的,各位也可以copy去试试,不行的话,给我留言。。。

//以下的定义为打开或保存word文件时,需要用到得参数

object confirmConversions = Type.Missing;
                object readOnly = Type.Missing;
                object addToRecentFiles = Type.Missing;
                object passwordDocument = Type.Missing;
                object passwordTemplate = Type.Missing;
                object revert = Type.Missing;
                object writePasswordDocument = Type.Missing;
                object writePasswordTemplate = Type.Missing;
                object format = Type.Missing;
                object encoding = Type.Missing;
                object visible = Type.Missing;
                object openConflictDocument = Type.Missing;
                object openAndRepair = Type.Missing;
                object documentDirection = Type.Missing;
                object noEncodingDialog = Type.Missing;
                object missing = Type.Missing;
                object filename = Filename;
                object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges; //解决normal.dot问题

Microsoft.Office.Interop.Word._Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                Microsoft.Office.Interop.Word._Document wordDoc = null;
                try
                {
                     
                    //打开Word文档对象  
                    wordDoc = wordApp.Documents.Open(ref filename, ref confirmConversions, ref readOnly, ref addToRecentFiles, ref passwordDocument, ref passwordTemplate, ref revert, ref writePasswordDocument, ref writePasswordTemplate, ref format, ref encoding, ref visible, ref openConflictDocument, ref openAndRepair, ref documentDirection, ref noEncodingDialog);
                    wordDoc.AcceptAllRevisions(); //接收word中所有的修订
                    wordDoc.Save();//保存
                    wordDoc.Close(ref missing, ref missing, ref missing);
                    wordApp.Application.Quit(ref saveOption, ref missing, ref missing);
                }
                catch { }
                finally
                {

//杀死打开的word进程
                    Process myProcess = new Process();
                    Process[] wordProcess = Process.GetProcessesByName("winword");
                    try
                    {
                        foreach (Process pro in wordProcess) //这里是找到那些没有界面的Word进程
                        {
                           IntPtr ip= pro.MainWindowHandle;

string str = pro.MainWindowTitle; //发现程序中打开跟用户自己打开的区别就在这个属性
                            //用户打开的str 是文件的名称,程序中打开的就是空字符串
                            if (string.IsNullOrEmpty(str))
                            {
                                pro.Kill();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ex.ToString();
                    }

}
            }
            catch (Exception ex)
            {
                bl = false;
            }

[转]关闭word进程的更多相关文章

  1. C#关闭word进程

    C#关闭word进程 foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName(&q ...

  2. [转]C# 关闭嵌在程序中的word进程而不关闭用户通过word手动打开的word进程

    命名空间 :System.Diagnostics 以前在word的时候,经常碰到word进程产生一大堆,怕关错了,把用户自己打开的word也关闭,一直搞忽悠,今天上网花了10块钱,下了个文件,给我了一 ...

  3. C# 调用word进程操作文档关闭进程

    C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ...

  4. 彻底关闭Excle进程的几个方法

    之前研究过的问题,最近有朋友问,这里再总结下做一个笔记. 我们在应用程序里面通过创建Excle应用对象打开Excle的情况下,如果不注意几个问题,可能无法彻底关闭Excle进程,来考察下面的几种情况: ...

  5. 一张图搞定OAuth2.0 在Office应用中打开WPF窗体并且让子窗体显示在Office应用上 彻底关闭Excle进程的几个方法 (七)Net Core项目使用Controller之二

    一张图搞定OAuth2.0   目录 1.引言 2.OAuth2.0是什么 3.OAuth2.0怎么写 回到顶部 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常 ...

  6. C# 如何强制关闭WINWORD进程

    private void KillProcess(string processName) //调用方法,传参{try{ Process[] thisproc = Process.GetProcesse ...

  7. C#操作Word (2)-- 打开&关闭Word文档

    本文正式开始在VS2010中使用C#语言操作Word2007. 不是十分了解Word对象模型的朋友,请参考上一篇文章,或者下载:C#操作Word2007.pdf. ------------------ ...

  8. wxPython 对话框关闭后进程无法退出的原因

    wxPython中不要用对话框作为主程序wx.Dialog,这会导致程序关闭后进程无法退出.一种可行的做法是用wx.Frame代替

  9. windows和linux下关闭Tomcat进程

    windows和linux下解决Tomcat进程 windows下启动Tomcat报错,8080端口号被占用,报错信息如下 两种解决方法,一种是关闭了这个端口号,另外一种是修改Tomcat下的serv ...

随机推荐

  1. [Animations] 快速上手 iOS10 属性动画

    概述 今天要说的UIViewPropertyAnimator, 是iOS10新的API 详细 代码下载:http://www.demodashi.com/demo/10639.html 基础动画, 核 ...

  2. linux配置server笔记

    设置防火墙开放80port -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 尽管看不懂是什么,可是这个是用于开放80p ...

  3. 理解Lucene中的Analyzer

    学习一个库,最好去官网.因为很多库API变动十分大,从博客上找的教程都过时了. Lucene原理就是简简单单的"索引",以空间换时间.但是Lucene将这件事做到了极致,后人再有想 ...

  4. Pandas中DataFrame修改列名

    Pandas中DataFrame修改列名:使用 rename df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01- ...

  5. HTML:减少页面加载时间的方法

    1. 重复的HTTP请求数量应尽量减少 (1)减少调用其他页面.文件的数量. (2)在使用css格式时,常会采用background载入图形文件,而每个background的图像都会产生1次HTTP ...

  6. 使用Xcode 查看objective-C的汇编代码

    Xcode自带将某一个源文件转化成汇编的功能.如图: 汇编的部分代码例如以下: # Assembly output for assemble.c # Generated at 2:29:34 下午 o ...

  7. Spring Boot热部署(springloader)

    使用方式一 在pom.xml文件添加依赖包: <plugin> <groupId>org.springframework.boot</groupId> <ar ...

  8. java中异常和集合

    1. java中处理错误情况有两种,1  Error,2  Exception error是无法处理的,Exception是可以处理的情况. Exception中又有两种情况,RuntimeExcep ...

  9. ASP.NET的一些小问题

    如何获取网站当前绝对路径? string path = HttpRuntime.AppDomainAppVirtualPath; 注:该路径结尾不含'/'.

  10. SVN清除,VS中SVN的错误以及全部替换

    是tortoisesvn吧?右键,设置,已保存数据,认证数据,清除 ======= <<<<<<< .mine ||||||| .r15 >>&g ...