Нажатие на кнопку в чужом приложении - C#
Формулировка задачи:
Всем доброго времени суток. Мне нужно нажать на кнопку в чужом приложении и вставить текст в поле. Через Spy++ я получаю название окна и обращаюсь к нему через FindWindow, но как обратиться к самой кнопке и текстовому полю?
Решение задачи: «Нажатие на кнопку в чужом приложении»
textual
Листинг программы
- using System;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- using System.Diagnostics;
- using System.Drawing;
- using System.Text;
- using System.Collections.Generic;
- namespace WindowsFormsOPEN
- {
- public static class WinAPI
- {
- [DllImport("user32.dll", SetLastError = true)]
- public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern IntPtr GetWindow(IntPtr HWnd, GetWindow_Cmd cmd);
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
- public static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, [Out] StringBuilder lParam);
- public enum GetWindow_Cmd : uint
- {
- GW_HWNDFIRST = 0,
- GW_HWNDLAST = 1,
- GW_HWNDNEXT = 2,
- GW_HWNDPREV = 3,
- GW_OWNER = 4,
- GW_CHILD = 5,
- GW_ENABLEDPOPUP = 6,
- WM_GETTEXT = 0x000D
- }
- }
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- IntPtr ptr = WinAPI.FindWindow(null, "AntiPlagiarism.NET");
- if (ptr.ToInt32() != 0)
- {
- IntPtr child = WinAPI.GetWindow(ptr, WinAPI.GetWindow_Cmd.GW_CHILD);
- MessageBox.Show(child.ToString());
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д