Mega Code Archive

 
Categories / C# / Development Class
 

Demonstrates using the Microsoft SystemEvents class to intercept an event generated by the system

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // // Event.cs -- Demonstrates using the Microsoft.SystemEvents class to intercept //             an event generated by the system. // //             Compile this program with the following command line: //                 C:>csc Event.cs // namespace nsEvent {     using System;     using System.Windows.Forms;     using Microsoft.Win32;          public class Event     {     //     // Define the delegate         public delegate void UserEventHandler (object obj, UserPreferenceChangedEventArgs args);     //     // Declare a variable that will hold the delegate         static public event UserEventHandler ShowEvent;         static public void Main ()         {     //     // Create the delegate using the event handler (below)               ShowEvent = new UserEventHandler (EvHandler);     //     // Creeate the event handler using the new operator               UserPreferenceChangedEventHandler handler = new UserPreferenceChangedEventHandler(ShowEvent);     //     // Add the delegate to the system delegate list. This is a multi-cast delegate     // and you must use the += operator to add the delegate. Use the -= operator     // to remove the delegate               SystemEvents.UserPreferenceChanged += handler;     //     // Show a message box to keep the program alive while you cause an event               MessageBox.Show ("Hey! C Sharp", "System Events");     //     // Remove the delegate from the system delegate list               SystemEvents.UserPreferenceChanged -= handler;         }     //     // Declare and define the method that will be used as the event handler function         static void EvHandler (object obj, UserPreferenceChangedEventArgs args)         {             /* Retrieve the category of the change */             UserPreferenceCategory cat = args.Category;                          /* Build a string for the message box */             string str = "User changed the " + cat.ToString() + " category";             /*  Show the change event */             MessageBox.Show (str, " event category");         }     } }