PDA

View Full Version : سوال: سوال درباره موس کلیکینگ با استفاده از C#



wizard10
شنبه 17 خرداد 1393, 19:01 عصر
سلام خدمت اساتید محترم !!

برای بنده یک سوال و در واقع یک مشکل پیش اومده بود اونم این هست که یک تایمر داریم که میخوام در یک زمان مشخص شده بر روی کلیک چپ موس کلیک بشه
لطفا کمک کنید
ممنون

میخواستم بدونم کسی میدونه و میتونه کمکم کنه که از این خاصیت در C#‎‎‎ استفاده کنم ؟

پیشاپیش ممنون
3>

parvizwpf
شنبه 17 خرداد 1393, 20:05 عصر
سوال مفهوم نیست.

wizard10
شنبه 17 خرداد 1393, 21:23 عصر
سوال مفهوم نیست.

مثلا یک تامیر گذاشتیم که هر 1 دقیقه 1 بار روی کلیک چپ موس کلیک بشه
کد همین رو میخوام
ممنون

aliagamon
شنبه 17 خرداد 1393, 23:43 عصر
از api باید استفاده کنید :

[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);



private const int MOUSEEVENTF_MOVE = 0x0001;
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
private const int MOUSEEVENTF_RIGHTUP = 0x0010;
private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
private const int MOUSEEVENTF_MIDDLEUP = 0x0040;
private const int MOUSEEVENTF_ABSOLUTE = 0x8000;




public static void Move(int xDelta, int yDelta)
{
mouse_event(MOUSEEVENTF_MOVE, xDelta, yDelta, 0, 0);
}




public static void MoveTo(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x, y, 0, 0);
}




public static void LeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
}

wizard10
یک شنبه 18 خرداد 1393, 00:03 صبح
از api باید استفاده کنید :

[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);



private const int MOUSEEVENTF_MOVE = 0x0001;
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
private const int MOUSEEVENTF_RIGHTUP = 0x0010;
private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
private const int MOUSEEVENTF_MIDDLEUP = 0x0040;
private const int MOUSEEVENTF_ABSOLUTE = 0x8000;




public static void Move(int xDelta, int yDelta)
{
mouse_event(MOUSEEVENTF_MOVE, xDelta, yDelta, 0, 0);
}




public static void MoveTo(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x, y, 0, 0);
}




public static void LeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
}



خب دوست عزیز چه جوری باید کاری کنم که تایمر هر 1 دقیقه 1 بار این کد ها رو اجرا کنه؟

aliagamon
یک شنبه 18 خرداد 1393, 10:16 صبح
یه تایمر بزارین هر دقیقه یک باز تابع LeftClick رو فراخوانی کنید ... اگرم خواستین مکان موس رو تو صفحه با تابع move to تغییر بدین ...

rasol_afkham
یک شنبه 18 خرداد 1393, 16:29 عصر
:متفکر:
چطور باید مکان ماوس را با تابع MoveTo تغییر داد. هر عددی می دم ماوس روی نقطه 0 و 0 کلیک می کنه!