Программное нажатие кнопки в другой программе - 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы