PDA

View Full Version : سوال: جابه جایی cursor



mojtabakhazaeli
پنج شنبه 31 اردیبهشت 1394, 17:01 عصر
سلام میخوام با فشردن یک باتن کورسور موس به یک مختصات خاص از صفحه دکستاپ یاصفحه برنامه دیگه بره و اونجا کلیک کنه
لطفا راهنمایی کنید مبتدی ام:افسرده:

god of war
پنج شنبه 31 اردیبهشت 1394, 20:34 عصر
سلام دوست عزیز . هدفت از اینکار چیه ؟ یعنی با اون کلیک قراره چه کاری انجام شه ؟

mojtabakhazaeli
پنج شنبه 31 اردیبهشت 1394, 23:21 عصر
سلام دوست عزیز . هدفت از اینکار چیه ؟ یعنی با اون کلیک قراره چه کاری انجام شه ؟
ساخت یک رو بات نرم افزاری که یه کار به طور مثال 1000 بار انجام بده مثل پیام در یک شبکه اجتماعی یا هر چیز دیگه

god of war
پنج شنبه 31 اردیبهشت 1394, 23:47 عصر
یا من منظورتو نفهمیدم یا شما :)
اگه میخوای بعدش کار خاصی انجام شه یعنی برای مثال یکی از button هایی که داری کلیکش اجرا شه میتونی event مربوط به اون button رو فراخونی کنی

mojtabakhazaeli
جمعه 01 خرداد 1394, 00:12 صبح
یا من منظورتو نفهمیدم یا شما :)
اگه میخوای بعدش کار خاصی انجام شه یعنی برای مثال یکی از button هایی که داری کلیکش اجرا شه میتونی event مربوط به اون button رو فراخونی کنی
نه عزیز یه رو بات نرم افزاری که بهش بگی تو یه زمان خاص بره یه جا از دکستاپ کلیک کنه

god of war
جمعه 01 خرداد 1394, 00:53 صبح
با این کد میشه موس رو به مکانی که دوست داری انتقال بدی
البته یراهه ک الان به ذهنم رسید شایدم ایراد داشته باشه
حالا چجوری کلیک کنه نمیدونم
private void button2_MouseClick(object sender, MouseEventArgs e) {
int x, y;
x=e.X;
y=e.Y;
Cursor.Position = new Point(x + 10, y + 10);
}

mojtabakhazaeli
جمعه 01 خرداد 1394, 23:37 عصر
این کد خطا میده و اجرا نمیشه

mojtabakhazaeli
جمعه 01 خرداد 1394, 23:47 عصر
سلام من میخوام یه روبات نرم افزاری بسازم که تو یه زمان معین بره یه کاری رو انجام بده مثلا کلیک کردن روی یک گزینه
برای این کار به حرکت خودکار Cursor نیاز دارم
من با این کد تقریبا مشکلم حل شده فقط دوتا اشکال داره!!
1 اینکه Cursorازصفحه برنامه خارج نمیشه
2 اینکه کلیک نمیکنه
میشه تو حل این دوتا مشکل کمکم کنید؟




this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(1000,5000);
Cursor.Clip = new Rectangle(this.Location, this.Size);

nunegandom
جمعه 01 خرداد 1394, 23:54 عصر
یه نگاه به این بنداز اگه تونستی خلاصه مطلب رو بذار اینجا اگه نه که چند ساعت دیگه خودم میذارم فعلا کار دارم و این مطلب هم برام جالبه
http://stackoverflow.com/questions/13520705/move-mouse-to-position-and-left-click

mojtabakhazaeli
شنبه 02 خرداد 1394, 21:17 عصر
یه نگاه به این بنداز اگه تونستی خلاصه مطلب رو بذار اینجا اگه نه که چند ساعت دیگه خودم میذارم فعلا کار دارم و این مطلب هم برام جالبه
http://stackoverflow.com/questions/13520705/move-mouse-to-position-and-left-click
مرسی دوست عزیز

mojtabakhazaeli
یک شنبه 03 خرداد 1394, 17:40 عصر
مرسی دوست عزیز
من چیزای ازش نفهمیدم!:ناراحت::ناراحت:

mojtabakhazaeli
یک شنبه 03 خرداد 1394, 17:41 عصر
من چیزی ازش نفهمیدم

محمد رضا فاتحی
یک شنبه 03 خرداد 1394, 17:51 عصر
یه نگاه به این بنداز اگه تونستی خلاصه مطلب رو بذار اینجا اگه نه که چند ساعت دیگه خودم میذارم فعلا کار دارم و این مطلب هم برام جالبه
http://stackoverflow.com/questions/13520705/move-mouse-to-position-and-left-click

خیلی عالی بود
کاملا واصحه که...خودش یه نمونه کد گذاشته.به پروژتون اضافه کنید کار می کنه...کل رویداد های موس رو می تونید پیاده سازی کنید
فشردن کلیک ، رهاکردن کلیک ، چرخ و ...

Javad_raouf
یک شنبه 03 خرداد 1394, 18:35 عصر
این کدیه که من برای نرم افزار RemoteDesktop استفاده کردم و جواب داده:
توی هر کلاسی که خواستی اینا رو کپی کن:
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, CallingConvention = System.Runtime.InteropServices.CallingConvention.S tdCall)]
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 myMouseLeftDown()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseLeftUp()
{
mouse_event(MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseRightDown()
{
mouse_event(MOUSEEVENTF_RIGHTDOWN, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseRightUp()
{
mouse_event(MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void mjChangeMousePosition(int x, int y)
{
Cursor.Position = new Point(x, y);
}
public void myMouseLeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseLeftDoubleClick(bool double_Click)
{
myMouseLeftClick();
myMouseLeftClick();
}
public void myMouseRightClick()
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
حالا فقط کافیه از متد ها استفاده کنی
مثلا برای کلیک:
myMouseLeftClick();
برای راست کلیک:
myMouseRightClick();
و...
همچنین می تونی خاصیت درگ و دراپ ماوس رو هم شبیه سازی کنی به این صورت که اول myMouseLeftDown رو فراخونی می کنی بعد با mjChangeMousePosition مکان جدیدی به ماوس می دی و در آخر با myMouseLeftUp درگ دراپ رو تموم می کنی

mojtabakhazaeli
یک شنبه 10 خرداد 1394, 23:27 عصر
این کدیه که من برای نرم افزار RemoteDesktop استفاده کردم و جواب داده:
توی هر کلاسی که خواستی اینا رو کپی کن:
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, CallingConvention = System.Runtime.InteropServices.CallingConvention.S tdCall)]
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 myMouseLeftDown()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseLeftUp()
{
mouse_event(MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseRightDown()
{
mouse_event(MOUSEEVENTF_RIGHTDOWN, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseRightUp()
{
mouse_event(MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void mjChangeMousePosition(int x, int y)
{
Cursor.Position = new Point(x, y);
}
public void myMouseLeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
public void myMouseLeftDoubleClick(bool double_Click)
{
myMouseLeftClick();
myMouseLeftClick();
}
public void myMouseRightClick()
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
}
حالا فقط کافیه از متد ها استفاده کنی
مثلا برای کلیک:
myMouseLeftClick();
برای راست کلیک:
myMouseRightClick();
و...
همچنین می تونی خاصیت درگ و دراپ ماوس رو هم شبیه سازی کنی به این صورت که اول myMouseLeftDown رو فراخونی می کنی بعد با mjChangeMousePosition مکان جدیدی به ماوس می دی و در آخر با myMouseLeftUp درگ دراپ رو تموم می کنی
من هر کار میکنم نمیتونم انجامش بدم میشه همین کد رو رو یه باتن بزاری برام که وقتی باتنو میزنم اجرا شه (یه نمونه برنامه سادشو):گریه:

mojtabakhazaeli
سه شنبه 12 خرداد 1394, 14:02 عصر
کسی نیست به من کمک کنه؟
:عصبانی++:

Javad_raouf
شنبه 16 خرداد 1394, 11:33 صبح
پیوست شد
یعنی اگر بگی اجرا نشد و جواب نداد و نفهمیدم و ....:عصبانی++:
شوخی کردم داداش ایشالا که مشکل حل بشه:لبخند: