المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس 10 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع العمليات processes


محمود عفيفى
07-10-2010, 04:39 PM
http://static.advancedpcmedia.com/img/logo/icons/CommandPrompt.png
التعامل مع العمليات في الملفات الدفعية


السلام عليكم ورحمة الله و بركاته
نعود لإكمال السلسلة التي بدأنا بها و هي دورة برمجة و كتابة الملفات الدفعية
اليوم سنتكلم عن العمليات processes و الأوامر التي تلزمنا للتعامل معها :

تعليمة taskkill http://www.tahasoft.com/vb/images/smilies/smile%20%2812%29.gif
تستخدم هذه التعليمة لإنهاء برنامج ما من البرامج التي تكون قيد التشغيل و التي يمكن الوصول لها عادة بالطريقة التالية :
نضغط بالزر اليمين في أي مكان فتظهر قائمة بعنوان إدارة المهام ثم ننتقل إلى قسم العمليات

http://img511.imageshack.us/img511/4058/03112009060135.png


وبعدها يمكن الضغط بالزر اليمين على أي عملية ثم اختيار إنهاء العملية

http://img27.imageshack.us/img27/5775/03112009060927.png

و لكن نحن يهمنا الطريقة التي تتم عن طريقة ملف دفعي batch file
و الأمر الذي سنستخدمه هو taskkill و كما تعودنا في الدروس السابقة هناك متغيرات
تستخدم مع التعليمة و اختصاراً للتعقيدات سنهتم بأهم طرق استخدام هذه التعليمة

لنفترض أننا فتحنا برنامج المفكرة notepad و نريد إنهاء هذه العملية عن طريق ملف دفعي و إغلاق المفكرة

سنستخدم لأداء هذه المهمة الأمر التالي :
taskkill /f /im notepad.exeو هي الطريقة الأكثر شيوعاً و استخداماً مع العمليات
و المتغيرات التي استخدمناها هي
f = forcefully أي لإنهاء العملية بشكل قسري
im = image name و هي لاستخدام اسم العملية كما فعلنا في مثالنا حيث كتبنا اسم العملية و هو notepad

و يمكن معرفة اسم أي عملية مفتوحة من خلال إدارة المهام و عادة يكون اسم العلمية هو اسم الملف الذي نشغله حتى يفتح البرنامح

مثال آخر :
كود إنهاء برنامج fire fox متصفح الانترنت
taskkill /f /im firefox.exeملاحظة :
قد يكون اسم أحد العليمات أكثر من كلمة و عندئذ نستخدم قوسي التنصيص
taskkill /f/im "ava find.exe"طريقة أخرى لاستخدام التعليمة :
لإنهاء عمليات عن طريق معرفة عناوينها process ID
طريقة قليلة الاستخدام لكن لنذكرها حتى نعرفها
مثال :
لإنهاء العملية التي قيد التشغيل و التي عنوانها 1296 نكتب الأمر :
taskkill /f /pid 1296لا شك أن هناك غموض عن هذا الرقم 1296 و من أي جاء و ما هو
لنشرح ذلك
أولاً قم بتحميل البرنامج التالي اسمه ProcX
الحجم 55 ك ب
رابط التحميل :
download (http://aboshar.googlepages.com/ProcX-www.tahasoft.com.exe)
أو :
http://www.multiupload.com/5KPMZ33KT0

الآن شغل البرنامج
و سترى العمليات كافة التي تعمل مع أسمائها وعناوينها :

http://img406.imageshack.us/img406/1200/03112009063011.png

مثا ل ثاني
لإنهاء العملية snagit32.exe
يمكن استعمال أحد الطريقتين

taskkill /f/im snagit32.exe
أو
taskkill /f /pid 3424 = يمكن أيضاً معرفة عنوان أي عملية بدون برامج وسيطة عن طريق تعليمة tasklist المشروحة في هذا الدرس في الأسفل

مساوئ هذه الطريقة :
إن عنوان العملية متغير كلما تم فتح البرنامج
مثلاً في المثال السابق كان عنوان العملية 3424 و عند إغلاق البرنامج و فتحه سيأخذ عنوان آخر

ملاحظة :
لإنهاء عملية من عمليات النظام و التي لم ينجح انهاؤها مع المتغير /f/im
نستخدم الكود التالي :
taskkill /s xxx.exeحيث xxx حسب اسم العملية
و هذه قليلة الاستخدام


تعليمة tskill
أيضاً هي من التعمليات التي تقوم بإنهاء عملية ما
و لكي لا نطيل الحديث عنها فإن استخدام الأمر taskkill أفضل منها للتعامل مع كل عملية على حده
و لكن وجدت فيها طريقة لم تنجح مع متغيرات taskkill و هي طريقة لإنهاء كافة العمليات المفتوحة
و لن نتحدث عن طرق استخدامها الأخرى للسبب الذي ذكرت

طريقة إنهاء كافة العمليات المفتوحة processes عن طريق هذا الأمر
tskill /a *وبعدها سيعمل سطح المكتب و سنجد أن هناك عداداً لإيقاف تشغيل الكمبيوتر
ويمكن إلغاء هذا العداد بكتابة الأمر
shutdown -aيكتب في قائمة ابدأ ثم تشغيل
أو في اختصار
أو في ملف دفعي
وعند تنفيذه سيلغى العداد
( سنذكرها بشيئ من التفصيل لاحقاً )

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

تعليمة tasklist
تستخدم هذه التعليمة بكل بساطة لمعرفة العمليات المفتوحة في النظام وعناوينها
وبعض المعلومات الإضافية الأخرى
طريقة الاستخدام
فقط نكتب الكود التالي :
tasklisthttp://img29.imageshack.us/img29/782/03112009065434.png

يمكن عدم إظهار السطر الأول بكتابة التعليمة كالتالي :
tasklist /nhلتشغيل العمليات من خلال الملفات الدفيعة نستخدم :
الأمر call

رأينا في التعليمات السابقة كيفية إنهاء و إغلاق العمليات
و لكن كيف يتم تشغيل البرامج و العمليات في الملفات الدفعية ؟

لنشرح من خلال مثال :
call "C:\Program Files\Babylon\Babylon-Pro\Babylon.exe"في هذا الأمر يتم تشغيل برنامج Babylon
حيث وضعنا بين الأقواس " " مسار البرنامج مع اسمه و امتداده الكامل

و بالنسبة للعمليات الأساسية في النظام يكفي وضع اسم الملف التنفيذي للبرنامج
مثال :
لتشغيل برنامج الرسام نكتب
call mspaintوكما لاحظتم يكفي الاسم بدون الامتداد أيضاً

و لا أخفيكم سراً أنه يكفي كتابة اسم البرنامج
أي لتشغيل برنامج الرسام يكفي أن نكتب في ملف دفعي الأمر التالي
mspaintوذلك فقط في العمليات التابعة للنظام
أي التي توجد ملفاتها في المجلد system و system32 و windows

تطبيق :
اكتب برنامجاً يقوم بإنهاء مستكشف ويندوز explorer ثم يقوم بتشغيله

لاحظتم في الدرس الماضي كيف احتجنا لمثل هذا الأمر من أجل تطبيق تغييرات محرر التسجيل registry بدون أن نقوم بعمل تسجيل خروج أو إعادة تشغيل
ويمكن كتابة الكود بالطريقة التالية
taskkill /f /im explorer.exe
call explorer.exeويمكن كتابة الكود بطريقة أفضل مع تعليمة اسمها start
taskkill /f /im explorer
@start "" /i explorerوهذه أنصح بها
بالنسبة لتعليمة start احفظوا هذه الصيغة لاستعمالها مع تطبيقات النظام فهي أفضل من call
و المتغيرات هذه هي الأمثل

ختاماً :
بقي أمر أخير أود ذكره وهو أن نقوم بزيادة تعيين أفضلية برنامج ما لإعطائه المزيد من موارد النظام
حتى ما يعلق قبل غيره بحال حدثت مشكلة في الكمبيوتر وعلق
لنحلل الأمر التالي :
start /high c:\windows\notepad.exe

الدرس 11 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع الملفات النصية (http://www.abc4web.net/vb/showthread.php?t=12414)

المغربي الجديد
13-10-2010, 04:14 AM
ما شاء الله عليك
جزاك الله خير الجزاء
واصل اخي الحبيب فنحن وراءك نقتفي اثرك
تسلم الايادي
:abc_152:

سالي الفلسطينية
13-10-2010, 08:21 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

محمود عفيفى
17-10-2010, 06:24 PM
جزاكما الله خيرا أخى المغربى واخت سالى :abc_152:

الدمشقي
17-10-2010, 07:36 PM
شـكــ وبارك الله فيك ـــرا لك أخي الحبيب محمود
:abc_022:
لك مني أجمل تحية .

أبو يوسف
17-10-2010, 08:50 PM
بارك الله فيك اخي محمود على هذه الجهود الطيبة

كينج نت
18-10-2010, 07:25 PM
السلام عليكم ورحمة الله وبركاته

بارك الله بجهودك الطيبه اخي العزيز محمود عفيفي

دوره قمه بالروعه والفائده جزاك الله عنا كل خير

:abc_152:

.