`
SavageGarden
  • 浏览: 221481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VBS中使用WMI事件处理监控系统进程

    博客分类:
  • VB
阅读更多

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>
分享到:
评论

相关推荐

    VBS中WMI的基础知识

    这段代码展示了如何使用VBS通过WMI来获取操作系统信息并终止特定进程的方法。通过这样的方式,不仅可以简化系统管理任务,还可以提高自动化处理的能力。这对于初学者来说是非常实用的示例,有助于理解VBS与WMI的基本...

    WMI于VBS管理WINDOWS(英文)

    6. **错误处理与优化**: 在VBS中,应该使用On Error语句来处理可能出现的错误,并通过适当的方式报告或处理它们。此外,合理地组织代码和使用批处理技术可以提高脚本运行效率。 7. **示例应用**: 通过WMI和VBS,你...

    WMI教程,VBS教程,adsi教程三合一教程

    通过WMI,你可以获取系统硬件配置、进程信息、服务状态、网络设置等,甚至可以执行远程管理和监控。 WMI教程通常包括以下几个关键部分: 1. **WMI基础**:讲解WMI的概念,如命名空间、类、实例和属性,以及如何...

    显示所有进程vbs脚本

    在这个特定的场景中,"显示所有进程vbs脚本"是用来查看系统当前正在运行的所有进程的工具。这样的脚本可以帮助用户监控系统资源的使用情况,找出可能的性能瓶颈或者潜在的安全风险。 在Windows操作系统中,进程是...

    vbs-cpu使用率.zip_VBS监控CPU的使用率

    在“vbs-cpu使用率.zip”压缩包中包含的“vbs-cpu使用率.vbs”文件,显然是一个使用VBS编写的脚本,用于实时监控计算机的CPU使用率,并在特定条件触发时执行预设程序。 以下是对这个VBS脚本可能实现功能的详细解释...

    WMI Tools.rar

    通过WMI,VBScript可以执行诸如监控系统事件、管理服务、查询硬件信息等任务。 在使用WMI Tools时,用户可以通过以下方式获取信息和管理系统: 1. **查询WMI类**:工具可能允许用户查询不同类型的WMI类,这些类...

    vb获得所有进程.txt

    VB6 中使用 WMI 查询进程 在 VB6 中,可以通过创建一个 COM 对象来连接到 WMI 服务,并执行查询以获取特定类型的数据。在这个例子中,我们关注的是 `Win32_Process` 类,它包含了有关运行在 Windows 系统上的所有...

    进程互视源代码

    - 利用 VBS 脚本结合 WMI 接口,可以编写简单的程序来获取当前系统中运行的所有进程信息。 - 例如,可以通过以下步骤实现: 1. 使用 VBS 调用 WMI 获取进程列表。 2. 分析每个进程的属性,如进程名、PID 等。 3...

    vb/vbscript wmi 实例wmi 实例

    WMI是Windows 2000及后续操作系统的核心管理技术,遵循Distributed Management Task Force (DMTF)制定的行业标准,它允许开发者访问、配置、以及监控Windows环境中的各种元素,如磁盘、事件日志、文件、网络组件、...

    wmi.rar_Vbscript_windows巡检脚本_wmi VBScript_wmi v_防火墙

    在这个场景中,VBS与WMI结合,可以编写出强大的系统监控脚本。例如,`CheckServerbak.vbs` 很可能就是这样一个脚本,用于执行系统检查任务。通过调用WMI的类和方法,脚本可以查询并显示系统进程信息,如进程ID、进程...

    vbs枚举进程 vbs列出进程的详细列表

    在`monitor.vbs`示例中,脚本检查名为“iexplore.exe”的进程是否存在于运行的进程中,如果是,则显示一个消息框提示IE浏览器正在运行。 4. 除了简单的枚举和显示进程信息,VBS脚本还可以用于修改系统注册表,进而...

    wmi各版本合集

    WMI通过COM接口暴露这些信息,使得系统管理员可以通过编写脚本或者使用管理工具进行远程监控和管理。 2. **WMI命令脚本** 包含的`.cmd`文件(如winrm_xp_2003.cmd、wmi_xp_2003.cmd等)是批处理脚本,它们可能包含...

    VBS进程判断代码

    标题中提到的“VBS进程判断代码”,意味着接下来将要介绍的是使用VBS脚本来检查Windows操作系统中的进程是否存在并运行的实例代码。这些脚本能够查询系统当前的进程列表,以确定某个特定进程是否在运行,这对于确保...

    磁盘IO利用率监控VBS脚本(windows)

    在Windows操作系统中,通过WMI(Windows Management Instrumentation)可以对磁盘的IO利用率进行监控。本次分享的VBS脚本能够实现Windows环境下磁盘IO利用率的监测功能。 脚本的名称为btlwchk_DiskIO.vbs,其版权...

    vbs的多线程的解决方法

    这里,`subscript1.vbs`和`subscript2.vbs`是两个独立的脚本文件,它们将在不同的进程中并发执行。需要注意的是,`False`参数表示子脚本应该在后台运行,不会阻塞主线程。 #### 2. 利用WMI和COM对象管理进程状态 ...

    用VBS实现监视进程创建与删除的代码

    通过以上代码,我们可以实现对本地或远程计算机上进程创建和删除的实时监视,以及进一步监控进程的CPU使用情况。这对于系统管理和故障排查具有重要的实际意义。此外,VBS和WMI的强大组合也为开发者提供了灵活的工具...

    VBS妙用.txt

    使用`Win32_Process`类来枚举所有正在运行的进程,并输出进程句柄、名称和可执行文件路径,这对于系统监控和故障排查至关重要。 ```vbs @echo("winmgmts:\\.\root\cimv2:win32_process").instances_&gt;&gt;ps.vbs @...

    wmi手册(英文)

    由于WMI手册是英文版,所以它将深入介绍如何使用VBScript编写脚本来与WMI接口进行交互,例如查询系统信息、监控事件、执行操作系统级别的任务等。 **WMI的基本概念** 1. **WMI提供者**:这些是实现WMI接口的具体...

    windowsxp系统查看进程的PID.pdf

    在Windows XP操作系统中,了解如何查看进程的PID(Process ID,进程标识符)是一项基本的技术技能,这有助于管理和诊断系统中的应用程序。PID是系统分配给每个正在运行的进程的一个唯一数字标识,它使得用户能够区分...

Global site tag (gtag.js) - Google Analytics