获取打开的Word文档
2018-06-17 22:37:19来源:未知 阅读 ()
1 using Word = Microsoft.Office.Interop.Word;
int _getApplicationErrorCount=0;
bool _isMsOffice = true;
/// <summary> 2 /// 获取最后一个当前处于活动状态的Word进程 3 /// </summary> 4 /// <param name="isLog">是否将检测到Office版本号写进日志,可根据项目需要删除该功能</param> 5 /// <returns></returns> 6 public static Word.Application GetWordApplication(bool isLog) 7 { 8 try 9 { 10 Word.Application wdApp = null; 11 bool log = isLog; 12 Thread.Sleep(100); 13 if (Process.GetProcessesByName("WINWORD").ToList().Count > 0) 14 { 15 _isMsOffice = true; 16 wdApp = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); 17 _getApplicationErrorCount = 0; 18 if (log) 19 Trace.WriteLine("检测到使用的MS Office " + wdApp.Version); 20 } 21 else if (Process.GetProcessesByName("wps").ToList().Count > 0) 22 { 23 _isMsOffice = false; 24 if (Type.GetTypeFromProgID("Kwps.Application") != null) 25 { 26 wdApp = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Kwps.Application"); 27 _getApplicationErrorCount = 0; 28 if (log) 29 Trace.WriteLine("检测到使用的WPS Office " + wdApp.Version + ";VBA V9"); 30 } 31 else if (Type.GetTypeFromProgID("wps.Application") != null) 32 { 33 wdApp = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Wps.Application"); 34 _getApplicationErrorCount = 0; 35 if (log) 36 Trace.WriteLine("检测到使用的WPS Office " + wdApp.Version + ";VBA V8"); 37 } 38 else 39 { 40 MessageBox.Show("当前WPS 不支持VBA"); 41 } 42 } 43 else 44 { 45 wdApp = null; 46 } 47 return wdApp; 48 } 49 catch (Exception ex) 50 { 52 _getApplicationErrorCount++; 53 if (_getApplicationErrorCount <= 5) //检测失败重试5次 54 { 55 Thread.Sleep(200); 56 return GetWordApplication(false); 57 } 58 else 59 { 60 Trace.WriteLine("Get word application failed!" + ex.Message + ex.StackTrace); 61 _getApplicationErrorCount = 0; 62 return null; 63 } 64 } 65 }
注:
调用是可使用Word.Application wdApp = GetWordApplication(true);
获取该进程中的所有文档可用:Word.Documents docs = wdApp.Documents;
转载请注明出处,谢谢!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Flask request接口获取参数 2019-08-13
- JavaScript获取Django模板中指定键值的数据,使用过滤器 2019-08-13
- 50行Python代码,教你获取公众号全部文章 2019-07-24
- Python-09-文件处理 2019-07-24
- python学习-35 文件处理 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash