आप अपने ऐप के मुख्य रूप IMessageFilter इंटरफ़ेस को लागू होने से ऐसा कर सकते हैं। आप इसे प्राप्त होने वाले विंडो संदेशों को स्क्रीन कर सकते हैं और क्लिक देख सकते हैं।
public partial class Form1 : Form, IMessageFilter {
public Form1() {
InitializeComponent();
Application.AddMessageFilter(this);
this.FormClosed += (o, e) => Application.RemoveMessageFilter(this);
}
public bool PreFilterMessage(ref Message m) {
if (m.Msg == 0x201 || m.Msg == 0x203) { // Trap left click + double-click
string name = "Unknown";
Control ctl = Control.FromHandle(m.HWnd);
if (ctl != null) name = ctl.Name;
Point pos = new Point(m.LParam.ToInt32());
Console.WriteLine("Click {0} at {1}", name, pos);
}
return false;
}
}
ध्यान दें कि यह अपने अनुप्रयोग के किसी भी विंडो में सभी क्लिक्स लॉग: उदाहरण के लिए।
स्रोत
2010-04-06 12:31:50
फॉर्म क्लास प्राप्त करने वाली एक नई कक्षा बनाएं, फिर डेविड फॉक्स का कोड अपनी नई कक्षा में रखें। उपभोक्ता रूप पर, डिफ़ॉल्ट रूप के बजाय आपकी नई कक्षा से प्राप्त होता है। पब्लिक क्लास फॉर्म 1: मैजिकफॉर्म –