/// <summary> /// Initializes a new instance of the UserActivityMonitor class, /// that monitors the specified activities. /// </summary> /// <param name="subscriber">The subscriber.</param> /// <param name="activities">The activities where the subscriber is interested in.</param> public UserActivityMonitor(IUserActivitySubscriber subscriber, UserActivities activities) { // set subscriber m_subscriber = subscriber; // set requested activities m_activities = activities; // split up activities for better performance m_monitorMouseClickEvents = (m_activities & UserActivities.MouseClick) == UserActivities.MouseClick; m_monitorMouseMoveEvents = (m_activities & UserActivities.MouseMove) == UserActivities.MouseMove; m_monitorKeyboardEvents = (m_activities & UserActivities.Keyboard) == UserActivities.Keyboard; }
/// <summary> /// Initializes a new instance of the UserActivityMonitor class, /// that monitors MouseClick and Keyboard activities. /// </summary> /// <param name="subscriber">The subscriber.</param> public UserActivityMonitor(IUserActivitySubscriber subscriber) : this(subscriber, UserActivities.MouseClick | UserActivities.Keyboard) { }
/// <summary> /// Disposes this instance and removes the message filter. /// </summary> public void Dispose() { // remove message filter if (m_active) Application.RemoveMessageFilter(this); // release subscriber m_subscriber = null; }