تقييم الموضوع :
  • 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
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [كود] عمل DragDrop من البرنامج الى Windows explorer HASAN6.0 5 367 02-12-15, 04:04 PM
آخر رد: hamada558
  [مقال] Fun with Windows Forms & Graphics - Spy Form silverlight 1 514 23-06-15, 09:33 PM
آخر رد: silverlight
  [Windows 7 Taskbar APIs [Features and Effects m.sami.ak 3 853 24-07-13, 02:17 PM
آخر رد: ivdz
  معلومة ::: How to resize Windows form to fit Windows screen ::: RaggiTech 0 413 06-10-12, 09:53 PM
آخر رد: RaggiTech
  معلومة ::: System.Management RaggiTech 1 370 06-10-12, 08:52 PM
آخر رد: RaggiTech
  كيفية انشاء برنامج تثبيت لخدمة ويندوز Windows Service على vs2008 RaggiTech 1 434 05-10-12, 02:39 AM
آخر رد: RaggiTech
  مثال على عملية إنشاء Windows Service – إنشاء برنامج تشفير تلقائي للملفات RaggiTech 1 583 05-10-12, 01:42 AM
آخر رد: RaggiTech
  خدمات الويندوز Windows Service RaggiTech 0 290 03-10-12, 01:46 PM
آخر رد: RaggiTech
  Windows Management Instrumentation - WMI RaggiTech 4 459 01-10-12, 08:09 PM
آخر رد: RaggiTech
  Threading in Windows Forms Applications RaggiTech 1 476 01-10-12, 07:36 PM
آخر رد: RaggiTech

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


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