PDA

View Full Version : سوال: مشکل در hook



shytonak
یک شنبه 20 مرداد 1387, 21:41 عصر
دوستان و مدیران عزیز اگه میشه یه راهنمایی کنید در تو hook مشکل دارم.من برای ثبت کلیدهای کیبرد از hook استفاده کردم اما زیر قسمتی که خط کشیدم ارور میده
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int SetWindowsHookEx(int hookType,
HookProc callback,
int instance,
int threadID);
میگه وجود نداره از رفرنس مناسب استفاده کن اگه میشه راهنمایی کنید.

__Genius__
یک شنبه 20 مرداد 1387, 22:08 عصر
سلام .
دوست خوب من #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 و نحوه استفاده از توابعش این (http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx) لینک رو دنبال کنید و حتماً به صورت کامل مطالعه کنید .

به هر صورت امیدوارم مفید واقع بشه .