أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

قيمة التسجيل AppInit_DLLs و Windows 95

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية134655
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
الموجز
لا يعتمد Windows 95 تحميل DLL إلى مساحة عنوان إحدى العمليات عبر استخدام قيمة التسجيل AppInit_DLLs. في Windows NT لعملية كل التنفيذ، Windows NT بتحميل DLLs المسرودة في قيمة السجل AppInit_DLLs في مساحة عنوان للعملية. للحصول على أداء وظيفي مشابه في نظام التشغيل Windows 95 يمكن تطبيق ربط مستوى النظام. يوضح هذا المقال حسب المثال كيفية القيام بها.
معلومات أخرى
لتنفيذ ربط مستوى النظام عليك التأكد من أن الدالة hooked (وظيفة رد الاتصال) موجود في ملف DLL. ثم يتم استدعاء الدالة هذا عندما نظام التشغيل بتعيين DLL hooked في مساحة العنوان التطبيق الهدف. الفعلي ربط الدالة ثم يعمل كجزء من عملية التطبيق الهدف.

هناك بشكل أساسي خطوتين المتضمنة في إنشاء ربط مستوى النظام:
  1. إنشاء ملف DLL مع دالة تم تصديرها كـ الدالة hooking. في دالة نموذج الذي يلي وظيفة رد الاتصال يتم modeled بعد وظيفة رد اتصال المطلوبة لتنفيذ WH_KEYBOARD ربط مستوى النظام:
          // Trap keyboard messages      __declspec(dllexport) LRESULT CALLBACK HookFunction(                       int code,                       WPARAM wParam,                       LPARAM lParam)      {         char szVCode[50];         //display the virtual key code trapped         sprintf(szVCode, "Virtual Key code: %lx", wParam);         MessageBox(NULL, szVCode,"Key stroke", MB_OK);                :                :      }   The associated .def file for this DLL might resemble this:      LIBRARY      HOOK      EXPORTS         HookFunction						
  2. تثبيت ربط مستوى النظام. لتثبيت في موضع الإضافة في الروتين يجب أن يتم تحميل DLL ، عنوان دالة ربط استرداد ثم استدعاء SetWindowsHookEx مع عنوان الدالة. وفيما يلي مثال:
          // add system-wide hook      hHookDll = LoadLibrary("hook");      hHookProc = (HOOKPROC) GetProcAddress(hHookDll, "HookFunction");      // Install keyboard hook to trap all keyboard messages      hSystemHook =  SetWindowsHookEx(WH_KEYBOARD,hHookProc,hHookDll,0);						
    بمجرد انتهاء التطبيق مع ربط مستوى النظام تأكد من التراجع عن عملية hooking كما يلي:
          // Remove the hook and unload the DLL used for the hooking process      UnhookWindowsHookEx(hSystemHook);      FreeLibrary(hHookDll);						
4.00

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 134655 - آخر مراجعة: 03/01/2005 15:34:49 - المراجعة: 3.2

Microsoft Win32 واجهة برمجة تطبيقات

  • kbmt kbcode kbkernbase kbregistry KB134655 KbMtar
تعليقات
ody>l>/html>>t"> © 2016 Microsoft