تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Windows Services Management
#1
كاتب الموضوع : 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])  
[/COLOR][/COLOR]

لايقاف ال service


كود :
[color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Stop[/color][COLOR=#007700]()  
[/COLOR][/COLOR]

لتشغيل ال service


كود :
[color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()  
[/COLOR][/COLOR]

لايقاف مؤقت


كود :
[color=#000000][COLOR=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]Pause[/color][COLOR=#007700]()  
[/COLOR][/COLOR]

لتشغيل ال service بدء ايقاف مؤقت


كود :
[color=#000000][COLOR=#0000bb] ServiceController1[/color][COLOR=#007700].Continue()  
[/COLOR][/COLOR]

لمعرفة حالة ال 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])  
[/COLOR][/COLOR]

لمعرفة هل يمكن ايقاف او تشغيل ال 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])
        [/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]CanShutdown[/color][COLOR=#007700])
        [/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#0000bb]ServiceController1[/color][color=#007700].[/color][color=#0000bb]CanPauseAndContinue[/color][COLOR=#007700])  
[/COLOR][/COLOR]


للانتظار عدد من الثواني حتى تصل ال 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]))
        [/COLOR][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]Stopped[/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]))
        [/COLOR][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]Paused[/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]))  
[/COLOR][/COLOR]



ما هي 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

Dim ScEx [/COLOR][color=#007700]As New [/color][color=#0000bb]ServiceControllerEx[/color][color=#007700].[/color][COLOR=#0000bb]ServiceControllerEx

        ScEx[/COLOR][color=#007700].[/color][color=#0000bb]ServiceName [/color][color=#007700]= ([/color][color=#dd0000]"UXsms"[/color][COLOR=#007700])
        [/COLOR][color=#0000bb]ScEx[/color][color=#007700].[/color][color=#0000bb]StartupType [/color][color=#007700]= ([/color][color=#dd0000]"Automatic"[/color][color=#007700]) [/color][COLOR=#dd0000]'To automatic startup type
        ScEx.StartupType = ("Manual") '[/COLOR][COLOR=#0000bb]Manual startup type
        ScEx[/COLOR][color=#007700].[/color][color=#0000bb]StartupType [/color][color=#007700]= ([/color][color=#dd0000]"Disabled"[/color][COLOR=#007700])  
[/COLOR][/COLOR]


رابط التحميل ال Service Controller Ex

http://vb4arb.com/vb/uploaded/18_01349107971.zip




في النهاية ارجو الفائدة و التوفيق للجميع.




اخوكم
Magic Sword
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم