Tôi có một chương trình cần gửi tin nhắn BM_CLICK đến một nút ứng dụng khác. Tôi có thể lấy nút điều khiển cửa sổ chính nhưng khi tôi cố gắng xử lý nút nếu luôn trả về 0Nhận một nút xử lý từ một ứng dụng khác
Tôi nhận được tên và nút chú thích nút từ Spy ++, có vẻ đúng nhưng tôi biết tôi đã nhận được lỗi. dưới đây là mã của tôi
public const Int BM_CLICK = 0x00F5;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hwnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
private void button1_Click(object sender, EventArgs e)
{
Process[] processes = Process.GetProcessesByName("QSXer");
foreach (Process p in processes)
{
////the Button's Caption is "Send" and it is a "Button".
IntPtr ButtonHandle = FindWindowEx(p.MainWindowHandle, IntPtr.Zero, "Button", "Send");
//ButtonHandle is always zero thats where I think the problem is
SendMessage(ButtonHandle, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
}
}
Spy màn bắn
hi Brian, Trừ khi tôi hiểu lầm những gì bạn hỏi tôi tin rằng tên lớp luôn luôn phải là một chuỗi không? – Mike
Đã sửa câu trả lời của tôi. –
Xin chào Brian, Ok hãy thử và vẫn không có gì :-) – Mike