ايران ويج

نسخه‌ی کامل: شبيه سازي كليك موس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام واحترام
دوستان محترم من كد شبيه سازي فشرده شدن كليدهاي صفحه كليد رو دارم.
آيا شما كدي در اختيار داريد كه كليك موس رو هم شبيه سازي كنه؟
لطفا راهنمايي كنيد
باتشكر
راحترین کار این هست که به اون المان یک sendmessage از نوع wm_leftbuttonclickبفرستین
باسلام و تشكر از راهنمايي شما، بله تا اينجا درست ولي من ميخوام كليك روي پنجره يك برنامه ديگه غيرازبرنامه دلفي انجام بشه، فرض كنيد من 2 برنامه رو اجرا كردم كه پنجره هركدوم از برنامه ها نصف صفحه دسكتاپ رو گرفته، اولي برنامه خودم كه توي دلفي نوشتم (باراهنمايي شما) و دومي يه برنامه ديگه (فرض كنيد يه بازي)
حالا ميخوام با يه دستور كه توي برنامه خودم در دلفي اجرا ميشه يك (يا دو يا سه) كليك در روي پنجره برنامه بازي (درنقاط مختلف پنجره برنامه بازي) انجام بشه، من اين كار رو براي كليدهاي صفحه كليد انجام دادم ولي براي كليك موس نتونستم، لطفا بررسي كنيد آيا ميشه اين كار رو كرد يا نه بازم متشكرم
ببینین تابع sendmessage چند پارامتر داره پارامتر اول هندل پنجره ای هست که پیغام باید بهش ارسال بشه در اینجا شما باید هندل اون پنجره از بازی که میخواهید پیغام به اون بره رو بهش بدین

برنامه هایی مثل spy window میتونن این کارو بکنن که اطلاعات پنجره ای که موس روش هست رو به شما نشون میدن که یکی از اونها هندل اون پنجره هست

روش استانداردش هم اینه که شما با استفاده از تابع findwindow بیاین هندل فورم بازی رو بگیرین و با استفاده از تابع findwindowEX بیاین هندل بچه ها رو بگیرین تا برسین به اون پنجره ای که میخواهید هکش کنید
سلام، ممنون كه زحمت كشيديد و وقت گذاشتيد ولي متاسفانه هركاري كردم نتونستم به نتيجه برسم، دوتا سوال برام پيش اومده اولا آيا SendMessage و PostMessage باهم فرقي دارند؟ و دوم وقتي ميخواهيم از wm_leftbuttonclick استفاده كنيم يعني داريم كليك كردن روي يك نقطه در يك پنجره رو شبيه سازي ميكنيم پس left و Top اين نقطه رو دركجا بايد وارد كنيم؟
بهرحال ضمن تشكر اگه براي شما امكان داره لطفا يك نمونه ساده از اين برنامه رو براي من ارسال كنيد.
متشكرم
تردها به صورت صف عمل میکنند یعنی پیغامها به ترتیب ورود خارج میشن شما وقتی از sendmessage استفاده میکنین باید هندل اون پنجره رو بهش بدین با top و left کاری نداره
شما میتونین از کلید های زیر برای جستجو در گوگل استفاده کنید

https://www.google.com/search?q=delphi+c...=firefox-a

لینک زیر هم به شما کمک میکنه

http://stackoverflow.com/questions/13856...lick-on-it
متاسفانه نتيجه نگرفتم، لينك اول كار نميكنه و در لينك دوم يك مثال هست كه فقط وقتي جواب ميده كه بخواهيم روي فرمهاي برنامه خودمون كليك كنيم، مشكل من وقتيه كه ميخوام روي فرم يه برنامه ديگه كليك انجام بشه
مهندس شما اول باید هندل پنجره مورد نظر رو بگیری
هندل یک پنجره رو با استفاده از تابع findwindow میگیرن
که میتونه 2 تا پارامتر رو بگیره
اولی کپشن پنجره دومی کلاس اون پنجره
مثلا به این شکل
کد:
FindWindow('notepad', nil);

http://www.swissdelphicenter.ch/en/showcode.php?id=327

این لینک میاد با notepad کار میکنه مثال خوبیه که همه چیز رو درک کنید
اول هندل اون دکمه رو با دستورات بالا که مبین توضیح داد پیدا کن بعد از تابع PostMessage و کلید BM_CLICK استفاده کن

به این شکل میشه:
کد:
ButtonHandle:=FindoWindow(...,...);
FindWindowEx(ButtonHandle,..,..,..);
.
.
.
PostMessage(ButtonHandle,BM_CLICK,0,0);