Solved

WMI Pause, Resume & Cancel Printing in VB6

Posted on 2010-08-23
3
1,954 Views
Last Modified: 2013-12-20
I would like to use VB6 to:

- Monitor default printer
- Pause any print job
- Run a sub
- If sub returns true then resume printing
- If not the cancel the print job

The default printer is a receipt printer that doesn't print any other documents.

I have successfully identified the default printer using WMI and can call the printer by a sub:

Dim objPrinter As Printer

Set objPrinter = GetDefaultPrinter()
MsgBox "Default printer is: " + objPrinter.DeviceName
MsgBox "Driver name is: " + objPrinter.DriverName
MsgBox "Port is: " + objPrinter.Port
Set objPrinter = Nothing

Can someone please help me pause any jobs on the printer till the above steps are followed

Thanks a Billion
0
Comment
Question by:thenemesiz
  • 2
3 Comments
 
LVL 6

Expert Comment

by:dax_bad
ID: 33499736
If you now how to write VBscripts, here's a few code snippets that will help you with Printers:
http://www.activxperts.com/activmonitor/windowsmanagement/adminscripts/printing/servers/#PausePrintJobs.htm



strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colPrintJobs =  objWMIService.ExecQuery _

    ("Select * from Win32_PrintJob")

For Each objPrintJob in colPrintJobs 

    objPrintJob.Pause    'Pauses All jobs in the collection

    objPrintJob.Resume    'Resumes all jobs in the collection

Next

Open in new window

0
 
LVL 6

Accepted Solution

by:
dax_bad earned 500 total points
ID: 33499779
Or something like this?
strComputer = "."	replace . with dns name or IP of print server or leave if script is running on the print server

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrintJobs =  objWMIService.ExecQuery _
    ("Select * from Win32_PrintJob")

For Each objPrintJob in colPrintJobs 

	objPrintJob.pause

	If checkSomething(test) = True Then
 		objPrintJob.Resume 
	Else
		objPrintJob.Cancel
	End if
Next

Function checkSomething(ByVal test)
'check something
If test.something = someValue Then
	checkPrintJob = True
Else
	checkPrintJob = False
End Function

Set objWMIService = Nothing
Set colPrintJobs = Nothing 
Wscript.Quit

Open in new window

0
 

Author Comment

by:thenemesiz
ID: 33500219
that's extremely helpful 'dax bad'

Appreciated!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to debug this code 7 56
vb6 connector to mongodb 2 45
Scrollbar on an excel page 4 29
Add and format columns in vb6 7 42
Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now