导航

监视打印机状态

Posted on 2008-03-25 10:43  pegger  阅读(590)  评论(0编辑  收藏  举报

 

描述

在任何时候,只要打印机更改状态,就使用临时性的事件消费程序发出警报。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService. _ 
    ExecNotificationQuery(
"Select * from __instancemodificationevent " _ 
        
& "within 30 where TargetInstance isa 'Win32_Printer'")
= 0
Do While i = 0
    
Set objPrinter = colPrinters.NextEvent
    
If objPrinter.TargetInstance.PrinterStatus <> _ 
        objPrinter.PreviousInstance.PrinterStatus 
Then
        
Select Case objPrinter.TargetInstance.PrinterStatus
            
Case 1 : strCurrentState = "Other" 
            
Case 2 : strCurrentState = "Unknown" 
            
Case 3 : strCurrentState = "Idle" 
            
Case 4 : strCurrentState = "Printing" 
            
Case 5 : strCurrentState = "Warming Up" 
        
End Select
        
Select Case objPrinter.PreviousInstance.PrinterStatus
            
Case 1 : strPreviousState = "Other" 
            
Case 2 : strPreviousState = "Unknown" 
            
Case 3 : strPreviousState = "Idle" 
            
Case 4 : strPreviousState = "Printing" 
            
Case 5 : strPreviousState = "Warming Up" 
        
End Select
        Wscript.Echo objPrinter.TargetInstance.Name _ 
            
&  " is " & strCurrentState _
                
& ". The printer previously was " & strPreviousState & "."
    
End If
Loop

河南恒友科贸有限公司 
电话 :0371-53733453    传真:0371-65388972
地址:郑州市郑花路8号 E-mail:hengyousoft@QQ.com