I'm looking to write a .Net Windows application that will capture how a user uses another running application.
The simplest form of this would be recording which buttons were clicked or menu items were opened. Capturing the button text or menu text would be enough.
I know this can be done by listening for events but was unsure how far this stretched. In Windows are you able to listen to another applications events or are they hidden from other applications?
If so, are there any .Net libraries I can use or open source projects to catch these events? Taking this further, turn these into generic events (im thinking lots of applications might fire events specific to them, so extracting general information is key)
If not, is the only solution to integrate my code with the application to gain access to the that applications events?
Many thanks
If I understand your post correctly, you need something similar to Spy++ that can hook the Windows messages and tell you when that message gets fired.
Have a look at these links:
private void CaptureCameraCallback()
{
using (CvCapture cap = CvCapture.FromCamera(CaptureDevice.Any, 1))
{
while (true)
{
Bitmap bm = BitmapConverter.ToBitmap(cap.QueryFrame());
bm.SetResolution(pctCvWindow.Width, pctCvWindow.Height);
pctCvWindow.Image = bm;
}
}
}
来源:https://stackoverflow.com/questions/8679307/capturing-user-events-button-clicks-etc-from-another-windows-application