تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ادارة خدمات الويندوز Windows Services المثبة
#1
كاتب الموضوع : Boutemine Oualid



بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته

من خلال هذه الشفرة يمكننا التحكم في الWindows Services المثبة على الجهاز

الشفرة تستعمل مجال الأسماء System.ServiceProcess
لذلك علينا اضافة مرجع إلى المجمع.
نقطة أخرى، الشفرة تتطلب صلاحيات مدير لذلك علينا اضافة ملف Manifest للمشروع
للمزيد من المعلومات راجعوا درس الأستاذ سامر عن موضوع الصلاحيات على هذا الرابط
http://vb4arb.com/vb/showthread.php?1407...t=Security



كود :
using System;
using System.ServiceProcess;
using System.Windows.Forms;
namespace GestionDesServicesWindows
{
public partial class frmMain : Form
{
private void frmMain_Load(object sender, System.EventArgs e)
{
ReadSvcs();
}
public frmMain()
{
InitializeComponent();
}
private void ReadSvcs()
{
ServiceController[] ListSvcs;
ListViewItem LVW;
ListSvcs = ServiceController.GetServices();

lvwServices.Items.Clear();
foreach (ServiceController SingleSvc in ListSvcs)
{
LVW = lvwServices.Items.Add(SingleSvc.DisplayName);
LVW.SubItems.Add(SingleSvc.ServiceName);
LVW.SubItems.Add(SingleSvc.Status.ToString());
LVW.SubItems.Add(SingleSvc.ServiceType.ToString());
System.Text.StringBuilder dependedServices = new System.Text.StringBuilder(5000,10000);
foreach (ServiceController serviceController in SingleSvc.DependentServices)
{
dependedServices.Append(serviceController.DisplayName);
dependedServices.Append("; ");
}
LVW.SubItems.Add(dependedServices.ToString());
}
}
private void lvwServices_Click(object sender, System.EventArgs e)
{
if (lvwServices.SelectedItems[0].Text != "")
{
switch (lvwServices.SelectedItems[0].SubItems[2].Text)
{
case "Stopped":
cmdStop.Enabled = false;
cmdStart.Enabled = true;
cmdPause.Enabled = false;
break;
case "Running":
cmdStop.Enabled = true;
cmdPause.Enabled = true;
cmdStart.Enabled = false;
break;
default:
cmdStop.Enabled = false;
cmdStart.Enabled = false;
cmdPause.Enabled = false;
break;
}
}
}
private void cmdStop_Click(object sender, System.EventArgs e)
{
if (lvwServices.SelectedItems.Count == 0) return;
if (lvwServices.SelectedItems[0].Text != "")
{
StopService(lvwServices.SelectedItems[0].SubItems[1].Text);
}
}
public void StopService(string ServiceName)
{
ServiceController[] ListSvcs;
ListSvcs = ServiceController.GetServices();
try
{
foreach (ServiceController SingleSvc in ListSvcs)
{
if (SingleSvc.ServiceName.ToUpper() == ServiceName.ToUpper())
{
SingleSvc.Stop();
ReadSvcs();
break;
}
}
}
catch (Exception e)
{
MessageBox.Show("Impossible de stopper le service, il peut etre désactivé.", "Erreur: " + e.Source);
}
}
public void StartService(string serviceName)
{
ServiceController[] ListSvcs;
ListSvcs = ServiceController.GetServices();
try
{
foreach (ServiceController SingleSvc in ListSvcs)
{
if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper()) {
SingleSvc.Start();
ReadSvcs();
break;
}
}
}
catch (Exception e) {
MessageBox.Show("The service may be disabled.", "Error: " + e.Source);
}
}
private void cmdStart_Click(object sender, System.EventArgs e)
{
if (lvwServices.SelectedItems.Count == 0) return;
if (lvwServices.SelectedItems[0].Text != "")
{
StartService(lvwServices.SelectedItems[0].SubItems[1].Text);
}
}
private void cmdRefresh_Click(object sender, System.EventArgs e)
{
ReadSvcs();
}
private void cmdPause_Click(object sender, EventArgs e)
{
if (lvwServices.SelectedItems.Count == 0) return;
if (lvwServices.SelectedItems[0].Text != "")
{
PauseService(lvwServices.SelectedItems[0].SubItems[1].Text);
}
}
private void PauseService(string serviceName)
{
ServiceController[] ListSvcs;
ListSvcs = ServiceController.GetServices();
foreach (ServiceController SingleSvc in ListSvcs)
{
if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper())
{
if (SingleSvc.CanPauseAndContinue)
SingleSvc.Pause();
else
{
MessageBox.Show("The service doesn't support this operation", "Error");
break;
}
ReadSvcs();
break;
}
}
}
}
}
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معلومة :: الحصول على الـForms الموجودة في المشروع في هيئة System.Windows.Forms.Form Aly El-Haddad 2 3,054 12-11-12, 02:22 PM
آخر رد: samielkholy
  ::: Disable a windows themes for controls ::: شئ عجيب RaggiTech 0 2,354 20-10-12, 12:12 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 2,199 17-10-12, 07:24 PM
آخر رد: RaggiTech
  مكتبة أكواد التطوير على منصات ال Windows Mobile RaggiTech 0 2,051 17-10-12, 06:49 PM
آخر رد: RaggiTech
  معرفة العنوان الفيزيائي لكروت الشبكة المثبة على الجهاز RaggiTech 0 2,351 17-10-12, 06:47 PM
آخر رد: RaggiTech
  لمعرفة الطابعات المثبة على الجهاز RaggiTech 0 1,879 17-10-12, 06:15 PM
آخر رد: RaggiTech
  Windows Authentication RaggiTech 0 1,818 17-10-12, 05:50 PM
آخر رد: RaggiTech
  معرفة الوقت الذي مضى على تشغيل الويندوز (الوقت هنا بالملي ثانية) RaggiTech 0 1,864 17-10-12, 05:44 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او تعديل لساعه الويندوز RaggiTech 0 1,531 17-10-12, 05:37 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او الغاء للخطوط الموجوده في الويندوز RaggiTech 0 1,729 17-10-12, 05:36 PM
آخر رد: RaggiTech

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


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