zoukankan      html  css  js  c++  java
  • [转]关闭word进程

    命名空间 :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;
                }

  • 相关阅读:
    day02操作系统/编程语言分类/python解释器介绍/python解释器多版本共存
    网络编程-互联网协议(网络编程)/基于TCP协议的套接字通信/加上通信循环/加上连接循环
    每天新的英语单词
    re模块(正则表达式)
    包的使用/time与datetime模块/random模块/打印进度条/shutil模块
    模块的使用之import/模块的使用之 from import/区分python文件的两种用途
    列表生成式与生成器表达式模块的使用模块的使用之from.......import区分python文件的两种用途文件的搜索路径
    三元表达式/函数的递归/匿名函数及其应用/map函数/reduce函数/ filter函数
    函数的嵌套/名称空间/作用域/函数对象/闭包函数
    跟未名学Office
  • 原文地址:https://www.cnblogs.com/skykang/p/3725143.html
Copyright © 2011-2022 走看看