Ребят, подскажите как можно прогрммно щелкнуть мышкой в окне сторонней программы? - 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);
}