Программное нажатие кнопки в другой программе - C#
Формулировка задачи:
вот код который имею почему-то когда пытаюсь найти саму кнопку возвращает 0
пожалуйста помогите уже неск раз перелопатил рунет и буржуйнет толку ноль.
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
[DllImport("user32.dll")]
public static extern bool PostMessage(IntPtr hwnd, uint msg, uint wParam, uint lParam);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
const int
WM_LBUTTONDOWN = 513,
WM_LBUTTONUP = 514;
IntPtr hwndChild = IntPtr.Zero;
IntPtr f = FindWindow(null, "handl окна");
MessageBox.Show(f.ToString());
hwndChild = FindWindowEx(f, IntPtr.Zero, "Button", "Надпись на кнопке"); // вот здесь не находит
PostMessage(hwndChild, WM_LBUTTONDOWN, 1, 0);
PostMessage(hwndChild, WM_LBUTTONUP, 0, 0);
MessageBox.Show(hwndChild.ToString());
кстати если найти handl при помощи spy++ то все прекрасно работает.
Решение задачи: «Программное нажатие кнопки в другой программе»
textual
Листинг программы
IntPtr hwnd = FindWindow(null, "имя окна"); IntPtr hwndChild = FindWindowEx(hwnd, IntPtr.Zero, "...", "..."); PostMessage(hwndChild, WM_LBUTTONDOWN, (IntPtr)1, IntPtr.Zero); PostMessage(hwndChild, WM_LBUTTONUP, (IntPtr)1, IntPtr.Zero);