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;
                }

  • 相关阅读:
    Firemonkey 控件设定字型属性及颜色
    ListView 使用 LiveBindings 显示超过 200 条记录
    Firemonkey ListView 获取项目右方「>」(Accessory) 事件
    XE7 Update 1 选 iOS 8.1 SDK 发布 iPhone 3GS 实机测试
    Firemonkey Bitmap 设定像素颜色 Pixel
    Firemonkey 移动平台 Form 显示使用 ShowModal 范例
    XE7 提交 App(iOS 8)提示「does not contain the correct beta entitlement」问题修复
    XE7 Android 中使用 MessageDlg 范例
    导出 XE6 预设 Android Style (*.style) 档案
    修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
  • 原文地址:https://www.cnblogs.com/skykang/p/3725143.html
Copyright © 2011-2022 走看看