I need an application for recording certain user activity, for use in a security program I am developing. The following items need to fire an event in a C# class:
User Login
Switch User
User Logout
System Shutdown, Restart,? Hibernate, and other power states
Program Focus Changed*
Keyword Typed**
User is Idle***
*For program focus whenever the focus changes to any application, for example [login to view URL] then an event should be fired.
**Using a low level keyboard hook keywords should be able to be set, and whenever typed it will cause an event to fire.
***Whenever the system has no mouse input or keyboard input for a period of time it should fire an User is Idle event and as soon as there is activity again it would fire User is No Longer Idle event....?
Event information should include the user name of the user (when applicable), the exact date and time of the event, etc.?
All events should be captured be a logging class that will simply display a log on a very basic GUI in a C# application.
## Deliverables
Monitoring OOP classes needed to be created, such a class for handling SystemEvents to track user login, etc. Monitoring classes need to throw events to be captured by the Logging Class.
Logging Class should simply take the information provided by the Monitoring Class that threw the event, and display it in a very simple GUI on the applications main form.
Need to be able to set a keyword using a simple OOP approch.
[login to view URL]("I like pizza");
The keyword monitoring class should be case-insensitive by default but offer a boolean setting to enable case? sensitivity? for any instance of the class.?
Idle monitoring should have a setable threadhold via an OOP approch:
[login to view URL](18);
Where 18 is the number of seconds to allow the computer to be idle before the *User is Idle* event is fired. As soon as there is system activity such as keyboard or mouse movement, then a *User is No Longer Idle* type event should be fire (Only if a User is Idle event had already been fired).?
If? necessary? a service may be used in order to capture user login/out events, etc.
The application must run without UAC rights needed, however UAC rights can be required to install the application (such as for a service).