Bạn có thể thực hiện việc này bằng cách có biểu mẫu chính của ứng dụng triển khai giao diện IMessageFilter. Bạn có thể hiển thị các thông báo cửa sổ mà nó nhận được và tìm kiếm các nhấp chuột. Ví dụ:
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;
}
}
Lưu ý rằng đây đăng tất cả nhấp chuột trong bất kỳ cửa sổ của ứng dụng của bạn.
Nguồn
2010-04-06 12:31:50
tạo một lớp mới có nguồn gốc từ lớp mẫu, sau đó đặt mã của David Fox trong lớp mới của bạn. trên biểu mẫu người tiêu dùng, kế thừa từ lớp mới của bạn thay vì Biểu mẫu mặc định. public class Form1: MagicForm –