(API) چگونه هندل کنترلی که در یک برنامه دیگر فوکوس کیبرد را در اختیار دارد، بدست آوریم؟
سلام. میخوام باستفاده از توابع API ویندوز (یا هر چیز دیگه ای ) هندل کنترلی که در یک برنامه دیگه (نامشخص) فوکوس کیبرد رو در اختیار داره (طبیعیه که اون چنجره فعال باشه ) رو بدست بیارم. در واقع میخوام مثل برنامه On-screen keyboard خود ویندوز به پنجره های دیگه پیغامهای کیبرد رو ارسال کنم.
* با استفاده از توابع findwindowex اینکار رو انجام دادم ولی اسن مستلزم اینه که اسم کلاس یا عنوان پنجره رو بدونیم. در حالیکه برنامه on screen keyboard ویندوز هر کنترلی که فوکوس کیبرد رو داشته باشه ، براش پیغام ارسال میکنه
نقل قول: (API) چگونه هندل کنترلی که در یک برنامه دیگر فوکوس کیبرد را در اختیار دارد، بدست آوریم؟
باید با Windows Message Handler این کار انجام بدید این کتابخانه این امکان را داره تمامی Message های ارسالی به پردازشگر را کنترل کنید در سطح سیستم عامل.
کافی Event که مد نظرتون هست رجیستر کنید بعد به محض اتفاق رویداد به هندل ویندو شما یه پاسخ ارسال میکنه.!
باید از این تابع ها استفاده کنید
1- SHChangeNotifyDeregister IN shell32
2- CallWindowProc(this->nOldProc, hWnd, msg, wParam, lParam)
تقریبا تمامی پیغام های سیستم عامل را می تونید کنترل کنید مثلا یک درایو و فولدر تو یک درایو تحت نظر بگیرید هر عملیات I/O تو اون فولدر اتفاق بیوفته به شما می تونه پیغام بده که چه اتفاقی افتاده فایل حذف شده ویا فایل ویرایش شده...
برای شروع هم اینجارو ببنید https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx