ورود

نسخه کامل مشاهده نسخه کامل : سوال درباره ی Global hook ها



prance_hell
23-07-2012, 22:37
سلام. من یه keyboard global hook نوشتم،یعنی تابع هوک رو داخل یه dll گذاشتم و بعد با تابع SetWindowsHookEx اون رو set کردم. سوال من اینه که مگه global hook ها پیام های مربوط به کل سیستم و پروسس ها رو مانیتور نمیکنن؟ولی مثلا من اینجا که برا keyboard نوشتم، فقط keystrok های مربوط به بعضی پروسس ها رو میتونه دریافت کنه... نمیدونم تونستم منظورم رو برسونم یا نه! لطفا اگه میشه راهنمایی کنید.

god of war 2
29-07-2012, 12:59
سلام.
ببینید برای هر کدام دستگاه های ورودی مثل mouse و keyboard دو نوع hook وجود داره یکی سطح پایین و دیگری کمی دارای سطح بالاتر.
نمونه سطح بالا یا WH_KEYBOARD مخصوص مونیتور کردن ترافیک رویداد های WM_KEYDOWN و WM_KEYUP در یک برنامه هست. یعنی در اصل با هر بار فراخوانی توابع GetMessage یا PeekMessage در برنامه و وجود دو رویداد قبلی , تا بع callback تعیین شده فراخانی میشه و شما میتونید به صف کلیدهای فشرده شده در برنامه دسترسی پیدا کنید.(به احتمال زیاد شما از این نوع استفاده کردید)

و اما نمونه سطح پایین یا WH_KEYBOARD_LL اجازه مونیتور کردن صف اصلی سیستم عامل برای ورودی کیبورد رو به شما میده و شما باید از این نوع استفاده کنید تا بتونید ورودی کیبورد رو برای تمام پروسس ها بدست بیارید.
البته توضیحاتتون نمونه کد کم داشت ولی حدس میزنم مشکلتون همین چیزی باشه که گفتم.

prance_hell
01-08-2012, 01:03
ممنونم دوست عزیز