تقييم الموضوع :
  • 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 1,020 12-11-12, 02:22 PM
آخر رد: samielkholy
  ::: Disable a windows themes for controls ::: شئ عجيب RaggiTech 0 691 20-10-12, 12:12 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 425 17-10-12, 07:24 PM
آخر رد: RaggiTech
  مكتبة أكواد التطوير على منصات ال Windows Mobile RaggiTech 0 388 17-10-12, 06:49 PM
آخر رد: RaggiTech
  معرفة العنوان الفيزيائي لكروت الشبكة المثبة على الجهاز RaggiTech 0 583 17-10-12, 06:47 PM
آخر رد: RaggiTech
  لمعرفة الطابعات المثبة على الجهاز RaggiTech 0 275 17-10-12, 06:15 PM
آخر رد: RaggiTech
  Windows Authentication RaggiTech 0 391 17-10-12, 05:50 PM
آخر رد: RaggiTech
  معرفة الوقت الذي مضى على تشغيل الويندوز (الوقت هنا بالملي ثانية) RaggiTech 0 413 17-10-12, 05:44 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او تعديل لساعه الويندوز RaggiTech 0 263 17-10-12, 05:37 PM
آخر رد: RaggiTech
  لمراقبه اي اضافه او الغاء للخطوط الموجوده في الويندوز RaggiTech 0 241 17-10-12, 05:36 PM
آخر رد: RaggiTech

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


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