سلام .
دوست خوب من #C کار نمیکنم ولی این مبحث رو توی ++C کار کردم .
Hook بحثی هست که یه مقداری پیچیده هست و حتی توی سطح User Mode hooking توی پیاده سازی یه مقدار دچار سردرگمی میشه آدم .
ولی قطعه کد مثالی که وجود داره توی #C به این صورت هست :
IntPtr hInstance = LoadLibrary("User32");
hhook = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, hInstance, 0);
همچنین به این کد توجه کنید .
[DllImport("user32.dll")]
static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookProc callback, IntPtr hInstance, uint threadId);
بهترین راه برای یادگیری نحوه نوشتن این نمونه برنامه ها استفاده از کدهای نمونه و پروژه های مشابه هست .
دو تا Attachment برای دانلود گذاشتم ، یکی سورس کد نمونه به زبان #C هست و یکی هم Demo این برنامه هست که خوب با بررسی هر دو میتونین به نتیجه دلخواه برسین .
همچنین پیشنهاد میکنم برای بهتر درک کردن Hook و نحوه استفاده از توابعش
این لینک رو دنبال کنید و حتماً به صورت کامل مطالعه کنید .
به هر صورت امیدوارم مفید واقع بشه .