بتـــــاريخ : 2/26/2011 2:09:51 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 946 0


    عمل Hook للنوافذ لمراقبة بعض رسائل النظام للنوافذة

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : MSVS | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    السلام عليكم

    هذا برنامج لمراقبة (بعض) رسائل النظام المرسلة لنوافذ البرامج .، طبعاً بواسطة دوال API


    الدوال الرئيسية في هذا البرنامج :


    Private Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" _
                             (ByVal lpString As String) As Long


    هذه الدالة لتحويل قيمة نصية لرسالة من نوع Long ليتعامل معها النظام .




    Private Declare Function RegisterShellHook Lib "Shell32" Alias "#181" _
                             (ByVal hWnd As Long, _
                              ByVal nAction As Long) As Long

    هذه الدالة لإنشاء Hook على النافذة
    الوسيط الأول مقبض النافذة التي ستستقبل الرسائل
    الوسيط الثاني نوع الـ Hook :
    RSH_REGISTER = 1
    RSH_REGISTER_PROGMAN = 2
    RSH_REGISTER_TASKMAN = 3




    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
                             (ByVal hWnd As Long, _
                              ByVal nIndex As Long, _
                              ByVal dwNewLong As Long) As Long

    هذه الدالة لتثبيت الخطاف (Hook) على النافذة



    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
                             (ByVal hWnd As Long, _
                              ByVal nIndex As Long) As Long

    هذه الدالة نستخدمها لمعرفة عنوان الإجراء الحالي للنافذة ، سنستخدمه عند إعادة الرسائل إلى النافذة الأصلية .




    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
                             (ByVal hWnd As Long, _
                              ByVal lpString As String, _
                              ByVal cch As Long) As Long

    هذه الدالة تعطينا عنوان النافذة



    Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" _
                             (ByVal hWnd As Long) As Long

    هذه الدالة تعطينا طول عنوان النافذة (القيمة العائدة من هذه النافذة تستخدم كوسيط ثالث مع الدالة GetWindowText )




    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
                             (ByVal lpPrevWndFunc As Long, _
                              ByVal hWnd As Long, _
                              ByVal Msg As Long, _
                              ByVal wParam As Long, _
                              ByVal lParam As Long) As Long


    هذه الدالة الأم التي ستستقبل جميع الرسائل من النظام .

    إذا كانت قيمة الوسيط الثاني ( Msg ) = قيمة الرسالة العائدة من الدالة RegisterWindowMessage فإن هذه الرسالة تخص الـ HOOK



    اترككم مع المرفق :)


    نسيت هذا الخطاف لا يراقب غير 8 رسائل ، ستعرفها عند الاطلاع على المرفق
     
    ملف مرفق(ملفات)
     
    ملف مرفق  Hook ALL Windows.rar (6.54كيلو )

    كلمات مفتاحية  :

    تعليقات الزوار ()