使用.NET C#启动和停止系统服务

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

Windows操作系统可以运行各种系统服务,从网络服务到安全服务等等。在某些情况下,系统服务可能需要由软件应用程序启动或停止。在本文中,我们将介绍如何使用.NET和C#语言启动和停止Windows操作系统中的系统服务。


第1步:引用命名空间
要使用.NET框架提供的系统服务功能,我们需要在应用程序中引用System.ServiceProcess命名空间。在C#项目中,可以使用以下语句引用它:

using System.ServiceProcess;

第2步:创建ServiceController
要访问和操作系统服务,我们需要使用ServiceController类。ServiceController类允许我们检索系统中安装的服务的详细信息,并执行以下一些操作:
检索服务状态
启动和停止服务
暂停和继续服务

以下代码演示了如何使用ServiceController类创建一个名为“SampleService”的服务控制器:

ServiceController serviceController = new ServiceController("SampleService");

第3步:检索服务状态
ServiceController类的Status属性提供了当前服务状态的详细信息。该属性返回ServiceControllerStatus枚举类型的值,表示服务状态的不同值。
以下代码演示了如何使用Status属性检索系统服务的当前状态:

if (serviceController.Status == ServiceControllerStatus.Running)
{
Console.WriteLine("服务正在运行.");
}
else if (serviceController.Status == ServiceControllerStatus.Stopped)
{
Console.WriteLine("服务已停止.");
}
else if (serviceController.Status == ServiceControllerStatus.Paused)
{
Console.WriteLine("服务已暂停.");
}
else if (serviceController.Status == ServiceControllerStatus.StartPending)
{
Console.WriteLine("服务正在启动.");
}
else if (serviceController.Status == ServiceControllerStatus.StopPending)
{
Console.WriteLine("服务正在停止.");
}
else if (serviceController.Status == ServiceControllerStatus.PausePending)
{
Console.WriteLine("服务正在暂停.");
}
else if (serviceController.Status == ServiceControllerStatus.ContinuePending)
{
Console.WriteLine("服务正在继续.");
}

在上面的代码中,我们使用Status属性检索服务的当前状态,并根据服务状态输出不同的信息到控制台。

第4步:启动和停止服务
可以使用ServiceController类的Start和Stop方法分别启动和停止系统服务。
以下代码演示了如何使用Start方法启动系统服务:

serviceController.Start();


如果系统服务已经在运行,则使用Start方法不会引发异常并且不会启动服务。
以下代码演示了如何使用Stop方法停止系统服务:

serviceController.Stop();


如果系统服务已停止,则使用Stop方法不会引发异常并且不会停止服务。

第5步:释放ServiceController
最后,我们应该释放ServiceController组件,以便将底层资源(如内存和文件句柄)返回给操作系统。可以使用Dispose方法或将ServiceController设置为null来释放该组件。

以下代码演示了如何释放ServiceController组件:

serviceController.Dispose();
serviceController = null;

根据上面的思路,在winform中,代码为:

        private void zbtnstart_Click(object sender, EventArgs e)
        {
            zservice.MachineName = ".";
            zservice.ServiceName = ztxtname.Text;
            zservice.Refresh();
            if (zservice.Status == ServiceControllerStatus.Running)
            {
                MessageBox.Show(zservice.DisplayName + "  服务正在运行");
            }
            else
            {

                zservice.Start();
                MessageBox.Show(zservice.DisplayName + "  服务已开启");
            }
        }

        private void zbtnstatus_Click(object sender, EventArgs e)
        {
            try
            {
                zservice.MachineName = ".";
                zservice.ServiceName = ztxtname.Text;//Iis 服务
                zservice.Refresh();
                if (zservice.Status == ServiceControllerStatus.Running)
                {
                    MessageBox.Show(zservice.DisplayName + "  服务已开启");

                }
                else
                {
                    MessageBox.Show(zservice.DisplayName + " 服务已停止");

                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void zbtnstop_Click(object sender, EventArgs e)
        {
            try
            {
                zservice.MachineName = ".";
                zservice.ServiceName = ztxtname.Text;//Iis 服务
                zservice.Refresh();
                if (zservice.CanStop)
                {
                    zservice.Stop();
                    MessageBox.Show(zservice.DisplayName + " 服务已停止");
                }
                else
                {
                    MessageBox.Show(zservice.DisplayName + " 不可以停止");

                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

操作步骤如下图所示:


附件:下载该文件资源,减少时间成本(增值服务)
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
文件部分展示图(单击放大)
使用.NET C#启动和停止系统服务使用.NET C#启动和停止系统服务
留言
该资源可下载
File Source
.rar
168.05 KB
使用.NET C#启动和停止系统服务使用.NET C#启动和停止系统服务
最新结算
HTM5 Canvas实现3D飞机飞行动画特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
HTM5 Canvas实现3D飞机飞行动画特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery图像缩放工具插件Zoomer特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery图像缩放工具插件Zoomer特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
Labelauty–jQuery单选框_复选框美化插件特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
Labelauty–jQuery单选框_复选框美化插件特效代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery网页版打砖块小游戏源码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery网页版打砖块小游戏源码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章