من توی ویندوز فرم کار میکنم...(سی شارپ)...یک مشکلی برایم پیش امده که یک ماه است دارم دنبالش میگردم:
چگونه از کیبرد ورودی بگیریم وقتی که برنامه ی ما minimize است؟یا فوکوس روی اون نیست؟
من توی ویندوز فرم کار میکنم...(سی شارپ)...یک مشکلی برایم پیش امده که یک ماه است دارم دنبالش میگردم:
چگونه از کیبرد ورودی بگیریم وقتی که برنامه ی ما minimize است؟یا فوکوس روی اون نیست؟
بگرد دنبال توابع API ویندوز
اگه یادم موند شب برات یه سمپل میزارم
خودتم بگردی میتونی پیدا کنیا
دوست عزیز وقتی 1 برنامه در حال اجرا تو ویندوز وجود داره اون برنامه یا در حال پردازش یا عملیات I/O انجام میده فکر نمیکنم وقتی برنامه ای Cpu رو در اختیار نداره بتونه ورودی بگیره یعنی وقتی شما رو برنامه کار نمیکنید سیستم عامل از کجا باید بفهمه شما ورودی رو برای کدوم برنامه در حال اجرا میخواید؟؟؟
یکم بیشتر توضیح بدی که دقیقا میخوای چیکار کنی بهتر میشه راهنمایی کرد!
نه این کارو قبلا انجام دادم با توابع API میشه ، داخل همین سایت هم چند نمونه دیدم .
Hook کردن یک راهه، سرچ کن
فایل رو برات ضمیمه کردم
وقتی focus ویندوز روی نرم افزار ما نباشه ، در این حالت نرم افزار قادر به دریافت ورودی از کاربر نیست.
راه حلی که برای این موضوع وجود داره گوش دادن به Message های رد و بدل شده بین برنامه ها در محیط ویندوز هستش که این عملیات از طریق Hooking صورت میگیره. در این روش ما میتونیم از فشرده شدن کلید های ویندوز آگاه بشیم.همچنین قادریم بفهمیم که کاربر ماوس رو حرکت داده و یا اینکه کلیدی رو روی ماوس فشرده!
(و مواردی از این دست)
در لینک زیر یک مثال ساده برای این موضوع در سایت CodeProject وجود داره.اگه جستجو کنی کتابخانه ها و همچنین مثال های بیشتری در این ضمینه پیدا میکنی.
http://www.codeproject.com/Articles/...g-Hooks-from-C
و همچنین لینک زیر :
http://www.codeproject.com/Articles/...ard-Hooks-in-C
آخرین ویرایش به وسیله hosseinsinohe : یک شنبه 07 اسفند 1390 در 05:12 صبح دلیل: افزودن لینک جدید
دستت درد نکنهmshprogrammer ,خیلی عالی بود ممنون
با تشکر از دوست عزیز mshProgrammer ولی این برنامه ورودی از کیبرد نمیگیره و فقط به minimize یا maximize کردو توسط موس اجرا میشه وقتی برنامه رو minimize میکنی و با برنامه دیگه کار میگنی میبینی که اصلا تغییری ایجاد نمیشه به نظرم نمیشه یعنی اصلا منطقی نیست وقتی رو 1 برنامه فاکوس نداری بتونی بهش ورودی بدی ولی میشه برنامه رو از اینکه کاربر کلیدی رو زده مطلع کرد!
نگاه کردم عزیزم شما یکم با دقت بیشتری نگاه کن!!!