PDA

View Full Version : کلیک بر اساس مختصات



fortex
شنبه 24 فروردین 1392, 12:48 عصر
سلام به دوستان عزیز :
یه کد میخاستم که وفتی مختصات بهش داده شد موس حرکت کنه بره اونجا کلیک کنه
با کد زیر ماوس حرکت میکنه و در نقطه x,y ثابت میشه:

this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(x, y);
Cursor.Clip = new Rectangle(this.Location, this.Size);
حالا کدی میخام اینجایی که وایساده کلیک چپ بشه و یا کلیک راست بشه

farghabil
شنبه 24 فروردین 1392, 12:52 عصر
manam donbale hamin hastam

kasi midune?

massar
شنبه 24 فروردین 1392, 13:43 عصر
سلام
اینجا (http://www.pinvoke.net/default.aspx/user32.sendinput)روششو شرح داده، باید از pInvoke و توابع native استفاده کنید.
اینم یه نمونه:


[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint 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()
{
uint X = (uint)Cursor.Position.X;
uint Y = (uint)Cursor.Position.Y;
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}

fortex
شنبه 24 فروردین 1392, 21:40 عصر
امکانش هست یکم توضیح بدید چطوری از کد استفاده کنم؟ این کد نیاز به تعریف فضای نام داره؟

Saber_Fatholahi
شنبه 24 فروردین 1392, 22:21 عصر
امکانش هست یکم توضیح بدید چطوری از کد استفاده کنم؟ این کد نیاز به تعریف فضای نام داره؟
سلام دوست من
بله از توابع API استفاده شده، شما باید فضای نام

Ststem.Runtime.InteruptServices
باید استفاده کنید. در ضمن شما فرمودین توسط تابعی کرسور ماوس می برید به یک نقطه خاص، پس در ادامه تابع DoMouseClick تعریف شده توسط دوست عزیزمان را فراخوانی کنید.
موفق و موید باشید