View Full Version : سوال: درخواست چند API
محمد فدوی
سه شنبه 16 شهریور 1389, 11:55 صبح
با سلام.
چند تا تابع API لازم دارم که اگر لطف کنید اونا رو با کمی شرح بهم بدید ممنون می شم.:لبخند:
1. تابعی که بشه به دکمه های ماوس مقدار داد. مثلاً چپ کلیک کرد! یا اگه بشه ولوم اون رو چرخوند یا ...
2. تابعی برای خواندن دکمه های فشرده شده ی فعلی ماوس
3. تابعی برای فشردن یک یا چند دکمه از صفحه کلید...
4. تابعی هم برای خواندن دکمه ی(های) فشرده شده ی فعلی در صفحه کلید...
اگر در آرگومان های توابع فوق ثابتی(ماکرویی) هم لازمه لطفاً اونا رو هم ذکر کنید.
با تشکر فراوان. :قلب::قلب::قلب:
مصطفی ساتکی
سه شنبه 16 شهریور 1389, 13:04 عصر
وقتی که هر یک از عملیات بالایی که شما ذکر کرد رخ میده یعنی دریافت یک کلید یا دریافت Position یا وضعیت کلید فشرده شده .ویندوز این پیام ها مثل WM_MOUSEUP یا غیره را در صف پیام ها قرار می دیده و application شما دریافت کرده و به فرم مربوطه انتقال میده و در فرم مربوطه شما بایستی این پیام ها رو دریافت کنید.
و ماکرو های مورد نظر در فایل هدر DECLARE_MESSAGE_MAP بایستی تعریف شه و در فایل .cpp تون BEGIN_MESSAGE_MAP و END_MESSAGE_MAP قرار دهیدو سپس برای پیام های دلخواهتون توابع مورد نظر رو پیاده کنید وتوش کدتونو بنویسید
majid zarei
چهارشنبه 17 شهریور 1389, 14:27 عصر
تابع GetAsyncKeyStat وضعیت فشرده شدن یا نشدن کلید مورد نظر شما را برمیگرداند.
این تابع مقدار صحیح بدون علامت برمیگرداند که در صورت فشرده شدن بزرگتر از 1 و درغیر این صورت عدد صفر می باشد . به عنوان آرگومان ورودی نیز کد اسکی کلید مورد نظر را می خواهد که در help این تابع جدول آن آمده است.
برای مابقی توابع درخواستی بعد از مطالعه خبر میدهم.
unsigned int key_stat=0;
key_stat=::GetAsyncKeySata(0x41);//A
if(key_stat>1)
کلید فشرده شده
آقای Delphi در صورت امکان یک منبع یا یک مثال ساده برای استفاده از پیامها در برنامه معرفی کنید. با تشکر::خجالت:
محمد فدوی
جمعه 19 شهریور 1389, 20:12 عصر
وقتی که هر یک از عملیات بالایی که شما ذکر کرد رخ میده یعنی دریافت یک کلید یا دریافت Position یا وضعیت کلید فشرده شده .ویندوز این پیام ها مثل WM_MOUSEUP یا غیره را در صف پیام ها قرار می دیده و application شما دریافت کرده و به فرم مربوطه انتقال میده و در فرم مربوطه شما بایستی این پیام ها رو دریافت کنید.
و ماکرو های مورد نظر در فایل هدر DECLARE_MESSAGE_MAP بایستی تعریف شه و در فایل .cpp تون BEGIN_MESSAGE_MAP و END_MESSAGE_MAP قرار دهیدو سپس برای پیام های دلخواهتون توابع مورد نظر رو پیاده کنید وتوش کدتونو بنویسید
ممنون از توضيحتون، ولي منظورم اين بود كه چه جوري به موس مقدار بدم يا محل اونو مستقل از پنجره برنامه بخونم. ( يعني از رويدادهاي ماوس استفاده نكنم.)
با اين حال ممنون!:تشویق:
saeid5977
شنبه 20 شهریور 1389, 04:24 صبح
سلام
از توابع keybd_event و mouse_event میتونید استفاده کنید و همینطور تابع جدیدتر SendInput برای جزییات بیشتر به msdn مراجعه کنید.
موفق باشید
مصطفی ساتکی
شنبه 20 شهریور 1389, 08:37 صبح
آقای Delphi در صورت امکان یک منبع یا یک مثال ساده برای استفاده از پیامها در برنامه معرفی کنید. با تشکر::خجالت:
این لینک ها شاید بتونه در این زمینه بهتون کمک کنه.البته تو همه کتاب های آموزش mfc نیز این بخش توضیح داده شده.
http://www.codeproject.com/KB/cpp/Introduce_Yourself_to_VC.aspx
http://www.codeguru.com/cpp/misc/misc/windowsmessaging/article.php/c239/Registered-Messages-vs-WMUSER.htm
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.