PDA

View Full Version : سوال: نحوه ی گرفتن ورودی از کیبرد



parsa lotfy
شنبه 06 اسفند 1390, 15:17 عصر
من توی ویندوز فرم کار میکنم...(سی شارپ)...یک مشکلی برایم پیش امده که یک ماه است دارم دنبالش میگردم:
چگونه از کیبرد ورودی بگیریم وقتی که برنامه ی ما minimize است؟یا فوکوس روی اون نیست؟:گریه:

Leon_SFS
شنبه 06 اسفند 1390, 17:40 عصر
بگرد دنبال توابع API ویندوز
اگه یادم موند شب برات یه سمپل میزارم
خودتم بگردی میتونی پیدا کنیا:متفکر:

mehdi zanjani
شنبه 06 اسفند 1390, 19:09 عصر
دوست عزیز وقتی 1 برنامه در حال اجرا تو ویندوز وجود داره اون برنامه یا در حال پردازش یا عملیات I/O انجام میده فکر نمیکنم وقتی برنامه ای Cpu رو در اختیار نداره بتونه ورودی بگیره یعنی وقتی شما رو برنامه کار نمیکنید سیستم عامل از کجا باید بفهمه شما ورودی رو برای کدوم برنامه در حال اجرا میخواید؟؟؟
یکم بیشتر توضیح بدی که دقیقا میخوای چیکار کنی بهتر میشه راهنمایی کرد!

Hybrid
شنبه 06 اسفند 1390, 19:24 عصر
نه این کارو قبلا انجام دادم با توابع API میشه ، داخل همین سایت هم چند نمونه دیدم .

mrbm_2007
شنبه 06 اسفند 1390, 21:54 عصر
Hook کردن یک راهه، سرچ کن

mshProgrammer
شنبه 06 اسفند 1390, 23:58 عصر
فایل رو برات ضمیمه کردم

hosseinsinohe
یک شنبه 07 اسفند 1390, 05:09 صبح
وقتی focus ویندوز روی نرم افزار ما نباشه ، در این حالت نرم افزار قادر به دریافت ورودی از کاربر نیست.
راه حلی که برای این موضوع وجود داره گوش دادن به Message های رد و بدل شده بین برنامه ها در محیط ویندوز هستش که این عملیات از طریق Hooking صورت میگیره. در این روش ما میتونیم از فشرده شدن کلید های ویندوز آگاه بشیم.همچنین قادریم بفهمیم که کاربر ماوس رو حرکت داده و یا اینکه کلیدی رو روی ماوس فشرده!
(و مواردی از این دست)

در لینک زیر یک مثال ساده برای این موضوع در سایت CodeProject وجود داره.اگه جستجو کنی کتابخانه ها و همچنین مثال های بیشتری در این ضمینه پیدا میکنی.
http://www.codeproject.com/Articles/5038/Using-Hooks-from-C
و همچنین لینک زیر :
http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C

parsa lotfy
یک شنبه 07 اسفند 1390, 07:51 صبح
دستت درد نکنهmshprogrammer ,خیلی عالی بود ممنون:لبخند:

mehdi zanjani
یک شنبه 07 اسفند 1390, 09:55 صبح
با تشکر از دوست عزیز mshProgrammer (http://barnamenevis.org/member.php?241988-mshProgrammer) ولی این برنامه ورودی از کیبرد نمیگیره و فقط به minimize یا maximize کردو توسط موس اجرا میشه وقتی برنامه رو minimize میکنی و با برنامه دیگه کار میگنی میبینی که اصلا تغییری ایجاد نمیشه به نظرم نمیشه یعنی اصلا منطقی نیست وقتی رو 1 برنامه فاکوس نداری بتونی بهش ورودی بدی ولی میشه برنامه رو از اینکه کاربر کلیدی رو زده مطلع کرد!

parsa lotfy
یک شنبه 07 اسفند 1390, 10:21 صبح
با تشکر از دوست عزیز mshProgrammer (http://barnamenevis.org/member.php?241988-mshProgrammer) ولی این برنامه ورودی از کیبرد نمیگیره و فقط به minimize یا maximize کردو توسط موس اجرا میشه وقتی برنامه رو minimize میکنی و با برنامه دیگه کار میگنی میبینی که اصلا تغییری ایجاد نمیشه به نظرم نمیشه یعنی اصلا منطقی نیست وقتی رو 1 برنامه فاکوس نداری بتونی بهش ورودی بدی ولی میشه برنامه رو از اینکه کاربر کلیدی رو زده مطلع کرد!


بهتره اول برنامه ی ضمیمه شده رو اول یه نگاه بندازی!!!:قهقهه:

mehdi zanjani
یک شنبه 07 اسفند 1390, 15:20 عصر
نگاه کردم عزیزم شما یکم با دقت بیشتری نگاه کن!!!