资源描述
C#Windows系统服务管理源代码
1.实现的界面
2.要导入的命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO;
using System.ServiceProcess;
using System.Diagnostics;
3.刷新服务功能的实现
private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
{
lstserver.Items.Clear();
#region 刷新服务
watch = System.ServiceProcess.ServiceController.GetServices();
foreach (ServiceController temp in watch)
{
try
{
string servepath = "";
ListViewItem lv = new ListViewItem(temp.DisplayName.ToString());
lv.SubItems.Add(temp.ServiceName.ToString());
#region 1.服务状态
if (temp.Status.ToString() == "Stopped")
{
lv.SubItems.Add("已停止");
}
else if (temp.Status.ToString() == "Running")
{
lv.SubItems.Add("正在运行");
}
else
{
lv.SubItems.Add("已暂停");
}
#endregion
#region 2.服务启动类型
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("start").ToString();
if (regs == "3")
{
lv.SubItems.Add("手动");
}
else if (regs == "4")
{
lv.SubItems.Add("已禁用");
}
else if (regs == "2" )
{
lv.SubItems.Add("自动");
}
else if (regs == "0")
{
lv.SubItems.Add("自动");
}
else
{
lv.SubItems.Add("未知");
}
}
catch
{
}
#endregion
#region 3.服务描述
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2= hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("Description").ToString();
lv.SubItems.Add(regs);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 4.服务路径
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2= hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
servepath = hklmrun2.GetValue("ImagePath").ToString();
lv.SubItems.Add(servepath);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 5.服务厂商
string fileinfo = "";
try
{
FileVersionInfo finfo = FileVersionInfo.GetVersionInfo(@servepath);
fileinfo = finfo.CompanyName;
lv.SubItems.Add(fileinfo);
}
catch
{
lv.SubItems.Add("");
}
if (fileinfo != "Microsoft Corporation"&&fileinfo !="")
{
lv.ForeColor = Color.Blue;
}
#endregion
lstserver.Items.Add(lv);
}
catch
{
}
}
#endregion
lblservecount.Text = "当前服务:" + lstserver.Items.Count.ToString() + "项";
}
4.显示已启动服务功能的实现
private void 显示已启动服务ToolStripMenuItem_Click(object sender, EventArgs e)
{
lstserver.Items.Clear();
#region 刷新服务
watch = System.ServiceProcess.ServiceController.GetServices();
foreach (ServiceController temp in watch)
{
#region foreach
try
{
string serverrunning = "";
serverrunning = temp.Status.ToString();
if (serverrunning == "Running")
{
try
{
string servepath = "";
ListViewItem lv=new ListViewItem(temp.DisplayName.ToString());
lv.SubItems.Add(temp.ServiceName.ToString());
#region 1.服务状态
if (temp.Status.ToString() == "Stopped")
{
lv.SubItems.Add("已停止");
}
else if (temp.Status.ToString() == "Running")
{
lv.SubItems.Add("正在运行");
}
else
{
lv.SubItems.Add("已暂停");
}
#endregion
#region 2.服务启动类型
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("start").ToString();
if (regs == "3")
{
lv.SubItems.Add("手动");
}
else if (regs == "4")
{
lv.SubItems.Add("已禁用");
}
else if (regs == "2" || regs == "0")
{
lv.SubItems.Add("自动");
}
else
{
lv.SubItems.Add("未知");
}
}
catch
{
}
#endregion
#region 3.服务描述
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("Description").ToString();
lv.SubItems.Add(regs);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 4.服务路径
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
servepath = hklmrun2.GetValue("ImagePath").ToString();
lv.SubItems.Add(servepath);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 5.服务厂商
string fileinfo = "";
try
{
FileVersionInfo finfo = FileVersionInfo.GetVersionInfo(@servepath);
fileinfo = finfo.CompanyName;
lv.SubItems.Add(fileinfo);
}
catch
{
lv.SubItems.Add("");
}
if (fileinfo != "Microsoft Corporation" && fileinfo != "")
{
lv.ForeColor = Color.Blue;
}
#endregion
lstserver.Items.Add(lv);
}
catch
{
}
}
}
catch
{
}
#endregion
}
#endregion
lblservecount.Text = "当前服务:" + lstserver.Items.Count.ToString() + "项";
}
5.显示未启动服务功能的实现
private void 显示未启动服务ToolStripMenuItem_Click(object sender, EventArgs e)
{
lstserver.Items.Clear();
#region 刷新服务
watch = System.ServiceProcess.ServiceController.GetServices();
foreach (ServiceController temp in watch)
{
#region foreach
try
{
string serverrunning = "";
serverrunning = temp.Status.ToString();
if (serverrunning != "Running")
{
try
{
string servepath = "";
ListViewItem lv = new ListViewItem(temp.DisplayName.ToString());
lv.SubItems.Add(temp.ServiceName.ToString());
#region 1.服务状态
if (temp.Status.ToString() == "Stopped")
{
lv.SubItems.Add("已停止");
}
else if (temp.Status.ToString() == "Running")
{
lv.SubItems.Add("正在运行");
}
else
{
lv.SubItems.Add("已暂停");
}
#endregion
#region 2.服务启动类型
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("start").ToString();
if (regs == "3")
{
lv.SubItems.Add("手动");
}
else if (regs == "4")
{
lv.SubItems.Add("已禁用");
}
else if (regs == "2" || regs == "0")
{
lv.SubItems.Add("自动");
}
else
{
lv.SubItems.Add("未知");
}
}
catch
{
}
#endregion
#region 3.服务描述
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
string regs = hklmrun2.GetValue("Description").ToString();
lv.SubItems.Add(regs);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 4.服务路径
try
{
RegistryKey hklmrun1 = Registry.LocalMachine;
RegistryKey hklmrun2 = hklmrun1.CreateSubKey(@"system\currentcontrolset\services\" + temp.ServiceName.ToString());
servepath = hklmrun2.GetValue("ImagePath").ToString();
lv.SubItems.Add(servepath);
}
catch
{
lv.SubItems.Add("");
}
#endregion
#region 5.服务厂商
string fileinfo = "";
try
{
FileVersionInfo finfo = FileVersionInfo.GetVersionInfo(@servepath);
fileinfo = finfo.CompanyName;
lv.SubItems.Add(fileinfo);
}
catch
{
lv.SubItems.Add("");
}
if (fileinfo != "Microsoft Corporation" && fileinfo != "")
{
lv.ForeColor = Color.Blue;
展开阅读全文