نموذج: يبين MODLIST.EXE كيفية تعداد عمليات و الوحدات النمطية

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

اضغط هنا لرابط المقالة باللغة الانجليزية192986
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
تكون المشكلة برمجة الشائعة واحد في Visual Basic الحاجة إلى تعداد كافة العمليات وكافة الملفات المقترنة (الوحدات النمطية) في الذاكرة. "إدارة المهام" تحت Windows NT 4.0 و Windows 2000 مثال رائع هذا. تسرد علامة التبويب الأولى "إدارة المهام" كافة إطارات التطبيق على سطح المكتب. تسرد علامة التبويب الثانية "إدارة المهام" كافة العمليات في النظام. توفر هذه المقالة تفاصيل حول كيف يتم سرد هذه العمليات و الوحدات النمطية لكل عملية في Windows 95 وWindows 98 Windows Me و Windows NT و Windows 2000.

هو Modlist.exe مشروع نموذج يوضح كيف يتم سرد كافة العمليات و الوحدات النمطية الخاصة بها ضمن Windows 95 و Windows 98 ، Windows Me ، Windows NT و Windows 2000.
معلومات أخرى
الملفات التالية غير متوفرة للتنزيل من "مركز التنزيل لـ Microsoft":
للحصول على معلومات إضافية حول كيفية تنزيل ملفات دعم Microsoft "، انقر فوق رقم المقالة التالي لعرضها في" قاعدة المعارف لـ Microsoft:
119591كيفية الحصول على ملفات دعم Microsoft من الخدمات عبر الإنترنت
قامت Microsoft بفحص هذا الملف بحثًا عن الفيروسات. استخدام Microsoft أحدث من برنامج كشف الفيروس المتوفر على التاريخ الذي تم نشر الملف. يتم تخزين الملف على ملقمات محسنة الأمان التي تساعد على منع إجراء أية تغييرات غير مصرح بها على الملف.

بالإضافة إلى المعلومات أدناه يتضمن نموذج التعليمة البرمجية المضمنة في Modlist.exe شاملة تعليقات تصف كيفية عمل التعليمات البرمجية. قد يكون مفيداً أن تتبع تدفق التعليمات البرمجية في النموذج أثناء قراءة هذه المقالة.

أولاً عليك لاحظ عند تعداد عمليات نظام التشغيل أن تكون مختلفة تماماً ضمن نظام التشغيل Windows 95/98/Me و Windows NT/2000 وظائف API الضرورية. ضمن نظام التشغيل Windows 95/98/Me، تُستخدم دالات من المجموعة ToolHelp32 API. يتم استخدام الدالات من PSAPI.DLL تحت Windows NT/2000 و.

Windows 95/98/Me و ToolHelp32

APIs Toolhelp32 استخدامها ضمن نظام التشغيل Windows 95 وWindows 98 وWindows Me الموجودة في KERNEL32.DLL. تتوفر هذه وظائف API فقط ضمن Windows 95 و Windows 98 و Windows Me. ToolHelp32 التالية دالات تسمح لك تعداد عمليات في النظام بالإضافة إلى الحصول على معلومات الذاكرة "و" الوحدة النمطية:
   CreateToolhelp32Snapshot()   Process32First()   Process32Next()   Module32First()   Module32Next()				
أول خطوة لإنشاء "لقطة" من المعلومات في النظام باستخدام دالة CreateToolhelp32Snapshot(). تسمح هذه الدالة باختيار تخزين نوع المعلومات في اللقطة. Modlist تحديد نموذج أولاً وضع علامة TH32CS_SNAPPROCESS لأن التي تهمك معالجة معلومات. هذه الدالة تقوم بإرجاع مؤشر بنية PROCESSENTRY32 ثم من المهم تذكر لتمرير المقبض إلى CloseHandle() عند اكتمال معالجة. إلى تكرار خلال قائمة العمليات في اللقطة ، استدعاء Process32First مرة واحدة ، متبوعاً استدعاءات متكررة Process32Next ، حتى أحد هذه الدالات بإرجاع FALSE. كل من هذه تأخذ وظائف المقبض اللقطة ومؤشر PROCESSENTRY32 بناء كمعلمات. بنية تعبئة PROCESSENTRY32 Process32First و Process32Next مع معلومات مفيدة حول عملية في النظام.

معرّف العملية قيد عضو th32ProcessID البنية. العملية التي يتم تخزين الملف القابل للتنفيذ ومسار في عضو szExeFile من البنية. معلومات مفيدة أخرى متوفرة أيضاً في البنية. نموذج Modlist فقط استرداد اسم EXE وإضافته إلى مربع القائمة. يمكن تمرير معرف العملية إلى API OpenProcess() الحصول على مقبض إلى العملية.

ذات معرّف عملية صالحة, يمكنك الاتصال CreateToolHelp32Snapshot() استرداد معلومات الوحدة النمطية للعملية مرة أخرى. هذه المكالمة الثانوي إلى CreateToolHelp32Snapshot() بتمرير إشارة TH32CS_SNAPMODULE ومؤشر إلى معرّف العملية (th32ProcessID القيمة بنية PROCESSENTRY32) كـ المعلمات وإنشاء لقطة من الوحدات النمطية في تلك العملية.

ترجع هذه الدالة على مؤشر مرة أخرى، ثم من المهم تذكر إغلاق المقبض باستخدام CloseHandle() ، بعد استرداد المعلومات حول العملية.

بطريقة مماثلة استرداد معلومات عملية ، Module32First يسمى مرة واحدة ويسمى Module32Next عدة مرات كما هو مطلوب إلى تكرار خلال المعلومات الوحدات النمطية للعملية.

Windows NT و Windows 2000 في PSAPI.DLL

يستخدم أسلوب Windows NT و Windows 2000 إلى إنشاء قائمة الوحدات النمطية وعمليات الدالات من PSAPI.DLL. يتم توزيع ملف PSAPI.DLL مع SDK للنظام الأساسي المتوفرة في: مثل دالات ToolHelp32 أيضاً PSAPI.DLL يحتوي على العديد من الدالات المفيدة. ومع ذلك، تناقش هذه المقالة فقط هذه الوظائف ذات الصلة تعداد عمليات و الوحدات النمطية:
   EnumProcesses()   EnumProcessModules()   GetModuleFileNameExA()				
أولاً, يتم إجراء EnumProcesses() لتعبئة صفيف عملية معرفات. يتضمن نموذج التعليمة البرمجية ModList أيضاً طريقة حساب عدد العمليات التي تم إرجاعها.

بعد ذلك، يتم استدعاء OpenProcess() لكل عملية معرفات لاسترداد مؤشر العملية، إذا المقبض صالح ثم استدعاء EnumProcessModules() تعداد الوحدات النمطية للعملية. تعبئة EnumProcessModules() صفيف تم تمريره كمعلمة ، مع مقابض الوحدة النمطية المرتبطة بالعملية.

يتم استخدام GetModuleFileNameExA() استرداد اسم الوحدة النمطية باستخدام "معالج العملية" و "الوحدة النمطية معالجة كمعلمات. سيكون اسم الوحدة النمطية المسار واسم الملف من مكتبة الارتباط الديناميكي ocx ، إلخ العملية تحميل.

في ModList ، هو مسافة بادئة اسم الوحدة نمطية في مربع القائمة لإظهار أن يكون "تابعة" ضمن العملية المقترنة به.

ملاحظات إضافية

قد يتم عرض اسم عملية أيضاً في قائمة الوحدات النمطية لتلك العملية. إذا لم يكن هذا مطلوبًا ، ببساطة مقارنة اسم الوحدة النمطية إلى اسم العملية قبل إضافتها إلى القائمة.

في نظام التشغيل Windows 95 تطبيقات 16-بت يكون لديك عملية معرفات إلخ، مثل تطبيقات Win32. لذلك، التي يتم الإعلام عنها بالتساوي بواسطة وظائف Toolhelp32. على الرغم من ذلك، هذا غير الحالة تحت Windows NT. تشغيل تطبيقات 16 بت التي تعمل تحت Windows NT و Windows 2000 في ما يسمى الجهاز المهام الظاهري (VDM). EnumProcesses لن تتعرف على أية تطبيقات 16 بت في النظام. ومع ذلك، فإنه يقوم بإرجاع عمليات NTVDM 32-بت التي تقوم بتشغيل تطبيقات 16 بت. تعداد التطبيقات ذات 16 بت تحت Windows NT و Windows 2000 ، يجب استخدام دالة تدعى VDMEnumTaskWOWEx().

استخدم إذا VDMEnumTaskWOWEx() لا تغطي هذه المقالة أو نموذج ModList.
Modlist

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

خصائص

رقم الموضوع: 192986 - آخر مراجعة: 02/24/2014 08:34:50 - المراجعة: 3.4

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbnosurvey kbarchive kbmt kbdownload kbfile kbhowto kbprogramming kbsample KB192986 KbMtar
تعليقات