PDA

View Full Version : كليك موس در چند نقطه همزمان



dj_dj_dj
دوشنبه 30 تیر 1393, 17:00 عصر
سلام دوستان
همونطور كه از عنوان مشخصه ميخوام به صورت همزمان در چند نقطه از صفحه كليك كنم
تابعش هست
حركت موس به مختصات مورد نظر SetCursorPos ( x,y );
و كليك كردن
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
ولي از اونجايي كه اشاره گر موس يدونه هست اين مياد يكي يكي عمل ميكنه
گفتم شايد با مولتر ترد بشه كاري كرد نوشتم ولي باز همون آشه همون كاسه
ولي برنامه هاي مشابه اينطوري خيلي ديدم ولي از چه تابعي استفاده ميكنن نميدونم
دوستان كسي اطلاعاتي داره؟

rahnema1
دوشنبه 30 تیر 1393, 18:38 عصر
سلام
شاید در برنامه های مشابه هم یه دونه موس بیشتر نباشه
اگه همزمان چند تا اشاره گر را می بینید دارند با هم حرکت می کنند ممکنه اون اشاره گر یه چیزی شبیه یک فرم باشه که شکل ماوس داره و اونقدر ماوس پشت سر هم در نقاط مختلف کلیک میشه که فکر می کنید همزمان داره انجام میشه

dj_dj_dj
دوشنبه 30 تیر 1393, 19:03 عصر
سلام
شاید در برنامه های مشابه هم یه دونه موس بیشتر نباشه
اگه همزمان چند تا اشاره گر را می بینید دارند با هم حرکت می کنند ممکنه اون اشاره گر یه چیزی شبیه یک فرم باشه که شکل ماوس داره و اونقدر ماوس پشت سر هم در نقاط مختلف کلیک میشه که فکر می کنید همزمان داره انجام میشه

نه مطمئن هستم كه بيشتر از يه اشاره گر هست چون تست كردم توو برنامه اونها ديگه اشاره گر موس اصلا حركت نميكنه اون مختصات مشخص خودش روشون كليك ميشه ولي واسه من چون با سي نوشتم مجبوره اول اشاره گر بره فلان مختصات بعد كليك كنه .ميخوام روي يه صفحي وب فلش كليك كنه . برنامه هايي كه ديدم در عرض نيم ثانيه شايد بيشتر از 40 نقطه از صفحه كليك ميكنن ولي واسه من (بدون استفاده از هيچ sleep در برنامه ) در همون مدت زمان فوق فوقش روو 5 نقطه توو نيم ثانيه كليك كنه (يكي يكي كليك ميكنه و ميره نقطه بعدي )
البته اونا با چه زباني نوشتن نميدونم
همچنين چون صفحه فلش هست به مشخصات سيستم هم ربط داره . ولي روو يه سيستم پر قدرت ديگه هم تست كردم فوق فوقش ديگه به 10 نقطه رسيد
اين وسط فقط زمان واسه من مهمه كه توو نيم ثانيه بتونه حداقل 30 نقطه كليك كنه

rahnema1
دوشنبه 30 تیر 1393, 21:46 عصر
با SendInput هم میشه

dj_dj_dj
سه شنبه 31 تیر 1393, 10:33 صبح
مرسي ا دوست عزيز
يه نمونه از SendInput پيدا كردم ولي توو اين هم موس حركت ميكنه
int x=200,y=200;
INPUT input;
input.type = INPUT_MOUSE;
input.mi.mouseData=0;
input.mi.dx = x*(65536/GetSystemMetrics(SM_CXSCREEN));
input.mi.dy = y*(65536/GetSystemMetrics(SM_CYSCREEN));
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE| MOUSEEVENTF_MOVE |MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
SendInput(1,&input,sizeof(input));
چه تغييري بايد بدم كه اشاره گر موس حركت نكنه ؟ MOUSEEVENTF_MOVE هم كه ورميدارم ديگه به موقعيت مورد نظر نميره هرجا اشاره موس هست اونجا كليك ميكنه . درست عني mouse event كار ميكنه

محمد فدوی
سه شنبه 31 تیر 1393, 10:59 صبح
به نظرم بد نیست اول چند تا کرسر برای سیستم عاملت تعریف کنی و بعد سعی کنی همزمان کلیکشون کنی. بعدا اگه موفق شدی سعی کن کار اول (تعریف چند کرسر) رو هم خودت تو برنامت انجام بدی.

این برنامه (http://www.multimouse.com/) رو تست کنی بد نیست.

rahnema1
سه شنبه 31 تیر 1393, 13:01 عصر
یک راه دیگه اینه که آیکن های ماوس را به یک آیکن خالی تغییر بدی (از طریق رجیستری)
بعد هم با با استفاده از این طریق تغییر اعمال بشه

SystemParametersInfo (SPI_SETCURSORS,0,NULL,0);


آیکن:
http://www.jholjhaal.com/hide-mouse-cursor-on-windows-with-mouse-pointer-scheme

توضیحات:
http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/17/use-powershell-to-change-the-mouse-pointer-scheme.aspx
http://www.thebitguru.com/articles/14-Programmatically%2BChanging%2BWindows%2BMouse%2BCu rsors