| General |
| 6.172 WMI - Printer JOB (Informazioni processi di Stampa) |
| Alessandro Baraldi |
|
Il codice VBA che segue mostra come recuperare lo stato dei JOBS della stampante attraverso la Classe Win32_PrintJob di WMI. Maggiori informazioni sull'argomento possono essere lette al link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_printjob.asp
Private Type prtJob
mCaption As String
mDataType As String
mDescription As String
mDocument As String
mDriverName As String
mElapsedTime As Date
mHostPrintQueue As String
mInstallDate As Date
mJobId As Long
mJobStatus As String
mName As String
mNotify As String
mOwner As String
mPagesPrinted As Long
mParameters As String
mPrintProcessor As String
mPriority As Long
mSize As Long
mStartTime As Date
mStatus As String
mStatusMask As Long
mTimeSubmitted As Date
mTotalPages As Long
mUntilTime As Date
End Type
Public p() As prtJob
Public Function retPrinterJob(ByRef prt() As prtJob)
Dim nIndex As Long
Dim PrintJobSet As Object
Dim printjob As Object
Set PrintJobSet = GetObject("winmgmts:").InstancesOf("Win32_PrintJob")
If (PrintJobSet.Count = 0) Then MsgBox "No print jobs!"
ReDim prt(PrintJobSet.Count)
For Each printjob In PrintJobSet
With prt(nIndex)
.mName = printjob.Name
.mJobId = printjob.JobId
.mStatus = printjob.Status
.mStatus = printjob.TotalPages
.mPagesPrinted = printjob.PagesPrinted
.mDocument = printjob.Document
.mNotify = printjob.Notify
.mElapsedTime = printjob.elapsedtime
.mHostPrintQueue = printjob.HostPrintQueue
.mSize = printjob.size
Debug.Print .mName & vbCrLf & _
.mJobId & vbCrLf & _
.mStatus & vbCrLf & _
.mStatus & vbCrLf & _
.mPagesPrinted & vbCrLf & _
.mDocument & vbCrLf & _
.mNotify & vbCrLf & _
.mElapsedTime & vbCrLf & _
.mHostPrintQueue & vbCrLf & _
.mSize
'// Ecc......!
End With
nIndex = nIndex + 1
Next
Set PrintJobSet=Nothing
set printjob=Nothing
End Function
|