浏览 2874 次
锁定老帖子 主题:VBS中使用WMI事件处理监控系统进程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (14)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-22
最后修改:2010-03-18
OA项目中遇到这样一个问题:用户起草一种类型的公文,编辑word正文时希望能够将公文中的一些内容自动带到正文中,这个无非就是从服务器上把公文所对应的word正文文件下载到本地,替换掉里面指定内容的事,问题的关键在于替换掉内容后,或者用户填写了内容后,关闭word文件,如何监听此事件以在word程序退出后将此文件上传到服务器,不然,用户岂不是只是在本地做了修改,毫无用处。google了很久,终于解决了此问题,过程如下: <html> <body onload="download(34567);init("C://Temp/" + 34567 + ".doc");replacefile();wordlistener();"> </body> </html> <script language="javascript"> //根据公文ID下载文件 function download(objID){ doDownload(objID); } function upload(filepath){ doUpload(filepath); } </script> <script language="vbscript"> '定义变量 开始 '定义操作word文件的相关变量 Dim myDocApp Dim myDoc Dim objSelection Dim wordfilepath '定义变量 结束 '初始化 开始 '设置操作word文件的相关变量 function init(filepath) Set myDocApp = CreateObject("Word.Application") myDocApp.Visible = True myDocApp.Activate myDocApp.Application.ScreenUpdating = False set myDoc = myDocApp.Documents.Open(filepath) Set objSelection = myDocApp.Selection Set wordfilepath = filepath end function '初始化 结束 '替换文件使用VBS 开始 '对下载到本地的公文模板进行内容替换 function replacefile() replace "#departname#","办公室" replace "#username#","张三" replace "#createDate#","2009-12-17" end function '替换文件使用VBS 结束 '替换函数 开始 function replace(text,replacetext) With objSelection.Find .Text = text .Replacement.Text = replacetext .Forward = True .Wrap = 1 .Execute ,,,,,,,,,,2 End With end function '替换函数 结束 '监听系统进程的函数 开始 function wordlistener() strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set objEventSource = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_Process'") Do While True Set objEventObject = objEventSource.NextEvent() If Ucase(Left(objEventObject.TargetInstance.Name, 7)) = "WINWORD" Then Select Case objEventObject.Path_.Class '如果是打开 'Case "__InstanceCreationEvent" '在这里添加事件处理代码 '如果是关闭 Case "__InstanceDeletionEvent" '在这里添加事件处理代码 上传文件 upload wordfilepath Exit Do End Select End If Loop end function '监听系统进程的函数 结束 </script> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |