![]() |
|
Windows Services Management - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : Windows Services Management (/showthread.php?tid=4751) |
Windows Services Management - RaggiTech - 01-10-12 كاتب الموضوع : magicsword
بسم الله الرحمن الرحيموحشتوني كتير منتدى فيجوال بيسك العرب و كل اعضائة الكرام. في موضوع اليوم ,سوف نتحدث عن طريقة ادارة خدمات الويندوز Windows Services باستخدام اداة Service Controller المضمنة بداخل الفيجوال استديو , و ايضا طرح اداة مفتوحة المصدر افضل منها لمعالجة القصور في الاداة الاصلية للفيجوال استيديو. ماهي خدمات الويندوز ؟ هي مجموعة من البرامج الصغيرة التي تعمل في الخلفية background لاداء وظيفة محددة اساسية, وليس لها واجهة رسومية GUI وبالتالي لا يمكن التعامل معها بطريقة مباشرة. يمكن التحكم في خدمات الويندوز باستخدام Microsoft Management Console حيث يمكن ايقاف او تشغيل او ايقاف مؤقت للخدمات , وايضا التحكم في طريقة بدء التشغيل startup type من حيث جعلها يدوية Manual او تلقائية Automatic او معطلة Disabled . وايضا يمكن التحكم في طريقة عمل Service من خلال ال parameters. خدمات الويندوز لها نوعان: خدمات نظام التشغيل OS Services و التي تاتي مع الويندوز نفسة مثل خدمة التحديثات التلقائية Windows Update. خدمات البرامج Third party services و هي تاتي مع تثبيت بعض من البرامج مثل برامج الانتي فيروس. كيف يمكن التحكم في خدمات الويندوز من خلال VB.NET ؟ يمكن ذلك باستخدام اداة Service Controller والمشتقة من system.serviceprocess . حيث تمكنك هذة الاداة من التحكم في ايقاف او تشغيل او ايقاف مؤقت للخدمات , ومعرفة حالة ال serivce . ولكن لا يمكن من خلالها التحكم في طريقة بدء التشغيل من حيث جعلها يدوية Manual او تلقائية Automatic او معطلة Disabled , وهذا يعتبر قصور في هذة الاداة , وسوف نناقش حل هذة المشكلة لاحقا. للتحكم في خدمة ما يجب اولا ان تقوم بتحديد اسم ال service كود : [color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]ServiceName [/color][color=#007700]= ([/color][color=#dd0000]"Uxsms"[/color][COLOR=#007700]) لايقاف ال service كود : [color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Stop[/color][COLOR=#007700]() لتشغيل ال service كود : [color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]() لايقاف مؤقت كود : [color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Pause[/color][COLOR=#007700]() لتشغيل ال service بدء ايقاف مؤقت كود : [color=#000000][COLOR=#0000bb] ServiceController1[/color][COLOR=#007700].Continue() لمعرفة حالة ال service كود : [color=#000000][COLOR=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Status[/color][COLOR=#007700]) لمعرفة هل يمكن ايقاف او تشغيل ال service كود : [color=#000000][COLOR=#0000bb] MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]CanStop[/color][COLOR=#007700]) للانتظار عدد من الثواني حتى تصل ال service ال حاله معينة كود : [color=#000000][COLOR=#0000bb] ServiceController1[/color][color=#007700].[/color][color=#0000bb]WaitForStatus[/color][color=#007700]([/color][color=#0000bb]ServiceProcess[/color][color=#007700].[/color][color=#0000bb]ServiceControllerStatus[/color][color=#007700].[/color][color=#0000bb]Running[/color][color=#007700], [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]TimeSpan[/color][color=#007700].[/color][color=#0000bb]FromSeconds[/color][color=#007700]([/color][color=#0000bb]10[/color][COLOR=#007700])) ما هي Service Controller Extended ؟ هي تطوير للاداة التقليدية Service Controller والتي فيها قصور يتمثل في وجود وظيفة يمكننا من خلالها التحكم في طريقة تشغيل الservice , ويمكن من خلالها الحصول على وصف علن service معين. Service Controller Extended هي اداة مفتوحة المصدر مبنية ب C# باستخدام .NET Framework 3.5 لاستخدام ال Service Controller Extended: 1اضف reference الى ServiceController.dll كود : [color=#000000][COLOR=#0000bb]Imports ServiceControllerEx[/color][color=#007700].[/color][COLOR=#0000bb]ServiceControllerEx رابط التحميل ال Service Controller Ex http://vb4arb.com/vb/uploaded/18_01349107971.zip في النهاية ارجو الفائدة و التوفيق للجميع. اخوكم Magic Sword |