Click here to Skip to main content
15,886,110 members
Home / Discussions / .NET (Core and Framework)
   

.NET (Core and Framework)

 
GeneralRe: Get Youtube video streams Pin
User 584223718-Dec-10 9:06
User 584223718-Dec-10 9:06 
QuestionComparing text Pin
Soulus8315-Dec-10 5:43
Soulus8315-Dec-10 5:43 
AnswerRe: Comparing text Pin
Luc Pattyn15-Dec-10 6:19
sitebuilderLuc Pattyn15-Dec-10 6:19 
AnswerRe: Comparing text Pin
Paladin200016-Dec-10 7:55
Paladin200016-Dec-10 7:55 
QuestionPrinting pdf files in batch using VB.net Pin
Saiju Menon14-Dec-10 19:28
Saiju Menon14-Dec-10 19:28 
AnswerRe: Printing pdf files in batch using VB.net Pin
_Erik_15-Dec-10 4:23
_Erik_15-Dec-10 4:23 
GeneralRe: Printing pdf files in batch using VB.net Pin
Saiju Menon15-Dec-10 22:49
Saiju Menon15-Dec-10 22:49 
GeneralRe: Printing pdf files in batch using VB.net [modified] Pin
_Erik_16-Dec-10 6:12
_Erik_16-Dec-10 6:12 
As I said before, this is a little tedious, but you are lucky today I don't feel bored. Make a class, give it a good name and add these fields:

C#
ManagementEventWatcher _jobInitiated;
ManagementEventWatcher _jobModified;
ManagementEventWatcher _jobTerminated;


Subscribe to the events at initialization, for example:

C#
void Initialize()
{
    string path = @"\\.\root\CIMV2";

    // This for _jobInitiated event
    string qry = string.Format("SELECT * FROM __InstanceCreationEvent WITHIN .1 WHERE TargetInstance ISA 'Win32_PrintJob'");

    EventQuery evQry= new EventQuery(qry);
    _jobInitiated = new ManagementEventWatcher(evQry);
    _jobInitiated.Scope = new ManagementScope(path);
    _jobInitiated.Options.Timeout = new TimeSpan(0, 1, 0);
    _jobInitiated.EventArrived += new EventArrivedEventHandler(_jobInitiated_EventArrived);

    // This for _jobModified event
    qry = string.Format("SELECT * FROM __InstanceModificationEvent WITHIN .1 WHERE TargetInstance ISA 'Win32_PrintJob'");

    evQry = new EventQuery(qry);
    _jobModified = new ManagementEventWatcher(evQry);
    _jobModified.Scope = new ManagementScope(path);
    _jobModified.EventArrived += new EventArrivedEventHandler(_jobModified_EventArrived);

    // And this for _jobTerminated
    qry = string.Format("SELECT * FROM __InstanceDeletionEvent WITHIN .1 WHERE TargetInstance ISA 'Win32_PrintJob'");

    evQry = new EventQuery(qry);
    _jobTerminated = new ManagementEventWatcher(evQry);
    _jobTerminated.Scope = new ManagementScope(path);
    _jobTerminated.Options.Timeout = new TimeSpan(0, 1, 0);
    _jobTerminated.EventArrived += new EventArrivedEventHandler(_jobTerminated_EventArrived);

    // Start watching
    _jobInitiated.Start();
    _jobModified.Start();
    _jobTerminated.Start();
}


Now you have subscribed to the events. All you have to do is answer to them. Here's a sample for job modified event:

C#
void _jobModified_EventArrived(object sender, EventArrivedEventArgs e)
{
    ManagementBaseObject theJob = (ManagementBaseObject)e.NewEvent["TargetInstance"];
    // theJob is a Win32_PrintJob object so:
    // To get the number of pages printed:
    int numPages = int.Parse(theJob["PagesPrinted"].ToString());
    // To get the total number of pages of this job sent to the printer queue
    int totPagesSent = int.Parse(theJob["TotalPages"].ToString());
    // And so on...
}


You can w

modified on Friday, December 17, 2010 8:54 AM

QuestionDatagridview Pin
kindman_nb13-Dec-10 20:43
kindman_nb13-Dec-10 20:43 
AnswerRe: Datagridview Pin
dan!sh 13-Dec-10 21:18
professional dan!sh 13-Dec-10 21:18 
AnswerRe: Datagridview Pin
Ger Hayden17-Dec-10 11:16
Ger Hayden17-Dec-10 11:16 
AnswerRe: Datagridview Pin
Ger Hayden18-Dec-10 5:22
Ger Hayden18-Dec-10 5:22 
QuestionSystem.Diagnostics.Process.GetProcessesByName Question Pin
gmhanna13-Dec-10 10:10
gmhanna13-Dec-10 10:10 
AnswerRe: System.Diagnostics.Process.GetProcessesByName Question Pin
Not Active13-Dec-10 10:30
mentorNot Active13-Dec-10 10:30 
GeneralRe: System.Diagnostics.Process.GetProcessesByName Question Pin
Brian C Hart13-Dec-10 11:23
professionalBrian C Hart13-Dec-10 11:23 
GeneralRe: System.Diagnostics.Process.GetProcessesByName Question Pin
Pete O'Hanlon13-Dec-10 11:28
mvePete O'Hanlon13-Dec-10 11:28 
AnswerRe: System.Diagnostics.Process.GetProcessesByName Question Pin
_Erik_13-Dec-10 12:55
_Erik_13-Dec-10 12:55 
GeneralRe: System.Diagnostics.Process.GetProcessesByName Question Pin
gmhanna14-Dec-10 3:30
gmhanna14-Dec-10 3:30 
QuestionData Transfer using MAC address [modified] Pin
ganesh_IT12-Dec-10 22:24
ganesh_IT12-Dec-10 22:24 
AnswerRe: Data Transfer using MAC address Pin
Luc Pattyn12-Dec-10 22:47
sitebuilderLuc Pattyn12-Dec-10 22:47 
AnswerRe: Data Transfer using MAC address Pin
Pete O'Hanlon13-Dec-10 1:08
mvePete O'Hanlon13-Dec-10 1:08 
AnswerRe: Data Transfer using MAC address Pin
Dave Kreskowiak13-Dec-10 9:03
mveDave Kreskowiak13-Dec-10 9:03 
GeneralRe: Data Transfer using MAC address Pin
ganesh_IT13-Dec-10 18:01
ganesh_IT13-Dec-10 18:01 
GeneralRe: Data Transfer using MAC address Pin
Dave Kreskowiak13-Dec-10 18:14
mveDave Kreskowiak13-Dec-10 18:14 
Questionapp.Config deployment Pin
Jassim Rahma12-Dec-10 2:39
Jassim Rahma12-Dec-10 2:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.