问题
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
回答1:
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:
- Deliver The Power Of Spy++ To Windows Forms
- Spying Window Messages from the Inside
- How can I get functionality similar to Spy++ in my C# app?
回答2:
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