تقييم الموضوع :
  • 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,331 12-11-12, 02:22 PM
آخر رد: samielkholy
  ::: Disable a windows themes for controls ::: شئ عجيب RaggiTech 0 2,569 20-10-12, 12:12 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 2,449 17-10-12, 07:24 PM
آخر رد: RaggiTech
  مكتبة أكواد التطوير على منصات ال Windows Mobile RaggiTech 0 2,291 17-10-12, 06:49 PM
آخر رد: RaggiTech
  معرفة العنوان الفيزيائي لكروت الشبكة المثبة على الجهاز RaggiTech 0 2,572 17-10-12, 06:47 PM
آخر رد: RaggiTech
  لمعرفة الطابعات المثبة على الجهاز RaggiTech 0 2,117 17-10-12, 06:15 PM
آخر رد: RaggiTech
  Windows Authentication RaggiTech 0 2,043 17-10-12, 05:50 PM
آخر رد: RaggiTech
  معرفة الوقت الذي مضى على تشغيل الويندوز (الوقت هنا بالملي ثانية) RaggiTech 0 2,061 17-10-12, 05:44 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او تعديل لساعه الويندوز RaggiTech 0 1,757 17-10-12, 05:37 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او الغاء للخطوط الموجوده في الويندوز RaggiTech 0 1,947 17-10-12, 05:36 PM
آخر رد: RaggiTech

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


يقوم بقرائة الموضوع: