Ребят, подскажите как можно прогрммно щелкнуть мышкой в окне сторонней программы? - C#

Узнай цену своей работы

Формулировка задачи:

На с++, делал так.
void ClickPos (int x, int y)
{
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); // нажали левую кнопку мыши
Sleep(30);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); // отпустили левую кнопку мыши
}
Подскажите пожалуйста, как это можно реализовать на C#. Заранее Вас благодарю.
Сорри )) Нашел
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
   public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
 
   private const int MOUSEEVENTF_LEFTDOWN = 0x02;
   private const int MOUSEEVENTF_LEFTUP = 0x04;
   private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
   private const int MOUSEEVENTF_RIGHTUP = 0x10;
 
public void DoMouseClick()
   {
      int X = Cursor.Position.X;
      int Y = Cursor.Position.Y;
      mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, X, Y, 0, 0);
   }
Немного подругому сделал. ))
public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
        [Flags]
        public enum MouseEventFlags
        {
            LEFTDOWN = 0x00000002,
            LEFTUP = 0x00000004,
 
        }
        public Form1()
        {
 
            InitializeComponent();
 
        }
 
        public static void LeftClick(int x, int y)
        {
            Cursor.Position = new System.Drawing.Point(x, y);
            mouse_event((int)(MouseEventFlags.LEFTDOWN), 0, 0, 0, 0);
            mouse_event((int)(MouseEventFlags.LEFTUP), 0, 0, 0, 0);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            LeftClick(0,0);
        }

Решение задачи: «Ребят, подскажите как можно прогрммно щелкнуть мышкой в окне сторонней программы?»

textual
Листинг программы
 public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
        [Flags]
        public enum MouseEventFlags
        {
            LEFTDOWN = 0x00000002,
            LEFTUP = 0x00000004,
        }
        public Form1()
        {
 
            InitializeComponent();
 
        }
 
        public static void LeftClick(int x, int y)
        {
            Cursor.Position = new System.Drawing.Point(x, y);
            mouse_event((int)(MouseEventFlags.LEFTDOWN), 0, 0, 0, 0);
            mouse_event((int)(MouseEventFlags.LEFTUP), 0, 0, 0, 0);
           
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
 
            EasyTimer.Enabled = true;
        }
 
       
            private void EasyTimer_Tick(object sender, EventArgs e)
        {
            LeftClick(50, 100);
          Thread.Sleep(1000);
            LeftClick(1000, 50);
          Thread.Sleep(1000);
                    
        }

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


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

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

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