Ребят, подскажите как можно прогрммно щелкнуть мышкой в окне сторонней программы? - C#
Формулировка задачи:
На с++, делал так.
Подскажите пожалуйста, как это можно реализовать на 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); // отпустили левую кнопку мыши }
Сорри )) Нашел
[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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д