代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
using System.Configuration.Install;
using System.Collections;

namespace eFormPC.DBUtility
{
    /// <summary>
    /// Windows 服务类
    /// <para>Author:周波</para>
    /// <para>Date:2010-12-2</para>
    /// </summary>
    public class ServiceUI
    {
        /// <summary>
        /// 检查服务存在的存在性
        /// </summary>
        /// <param name=" NameService ">服务名</param>
        /// <returns>存在返回 true,否则返回 false;</returns>
        public static bool isServiceIsExisted(string NameService)
        {
            ServiceController[] services = ServiceController.GetServices();
            foreach (ServiceController s in services)
                if (s.DisplayName.ToLower() == NameService.ToLower())
                    return true;
            return false;
        }

/// <summary>
        /// 安装Windows服务
        /// </summary>
        /// <param name="stateSaver">集合</param>
        /// <param name="filepath">程序文件路径</param>
        public static void InstallmyService(IDictionary stateSaver, string filepath)
        {
            try
            {
                AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
                AssemblyInstaller1.UseNewContext = true;
                AssemblyInstaller1.Path = filepath;
                AssemblyInstaller1.Install(stateSaver);
                AssemblyInstaller1.Commit(stateSaver);
                AssemblyInstaller1.Dispose();
            }
            catch (Exception ex)
            {
                throw;
            }
        }

/// <summary>
        /// 卸载Windows服务
        /// </summary>
        /// <param name="filepath">程序文件路径</param>
        public static void UnInstallmyService(string filepath)
        {
            try
            {
                AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
                AssemblyInstaller1.UseNewContext = true;
                AssemblyInstaller1.Path = filepath;
                AssemblyInstaller1.Uninstall(null);
                AssemblyInstaller1.Dispose();
            }
            catch (Exception ex)
            {
                throw ;
            }
        }

/// <summary>
        /// 检查Windows服务是否在运行
        /// </summary>
        /// <param name="name">程序的服务名</param>
        public static bool IsRunning(string name)
        {
            bool IsRun = false;
            try
            {
                if (!isServiceIsExisted(name)) return false;
                var sc = new ServiceController(name);
                if (sc.Status == ServiceControllerStatus.StartPending || sc.Status == ServiceControllerStatus.Running)
                {
                    IsRun = true;
                }
                sc.Close();
            }
            catch
            {
                IsRun = false;
            }
            return IsRun;
        }

/// <summary>
        /// 启动Windows服务
        /// </summary>
        /// <param name="name">程序的服务名</param>
        /// <returns>启动成功返回 true,否则返回 false;</returns>
        public static bool StarmyService(string name)
        {
            try
            {
                var sc = new ServiceController(name);
                if (sc.Status == ServiceControllerStatus.Stopped || sc.Status == ServiceControllerStatus.StopPending)
                {
                    sc.Start();
                    sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 10));
                }
                else
                {

}
                sc.Close();
                return true;
            }
            catch (Exception ex)
            {
                throw ;
            }
        }

/// <summary>
        /// 停止Windows服务
        /// </summary>
        /// <param name="name">程序的服务名</param>
        /// <returns>停止成功返回 true,否则返回 false;</returns>
        public static bool StopmyService(string name)
        {
            try
            {
                var sc = new ServiceController(name);
                if (sc.Status == ServiceControllerStatus.Running || sc.Status == ServiceControllerStatus.StartPending)
                {
                    sc.Stop();
                    sc.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10));
                }
                else
                {

}
                sc.Close();
                return true;
            }
            catch (Exception ex)
            {
                throw ;
            }
        }

/// <summary>
        /// 重启Windows服务
        /// </summary>
        /// <param name="name">程序的服务名</param>
        /// <returns>重启成功返回 true,否则返回 false;</returns>
        public static bool RefreshmyService(string name)
        {
            return StopmyService(name) && StarmyService(name);
        }
    }
}

转载于:https://www.cnblogs.com/sanpi/archive/2010/11/24/1886625.html

C#可以对系统服务 检查增加删除启动停止重启(转)相关推荐

  1. mysql 设置中文 重启_如何启动/停止/重启MySQL + 进入MYSQL-Go语言中文社区

    Ubuntu 如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mys ...

  2. 如何启动/停止/重启MySQL + 进入MYSQL

    Ubuntu 如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mys ...

  3. mysql 启动 修改密码_基础的启动/停止/重启/密码修改MySQL

    如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld st ...

  4. linux启动关闭脚本,Linux中启动/停止/重启/状态的startup脚本

    今天看到一个脚本,可以完成脚本的启动/停止/重启/状态,和/etc/init.d中的服务一样.但是/etc/init.d里面的服务要设置开机启动,可以使用service来管理.如果不设置开机启动且方便 ...

  5. linux启动/停止/重启MySQL的命令

    linux如何启动/停止/重启MySQL数据库服务?两种方式,一种是使用service启动/停止/重启,另一种则是使用mysqld脚本启动/停止/重启. linux启动MySQL命令 [root@yu ...

  6. crontab服务启动 停止 重启(linux 定时任务)

    crontab 服务 启动 停止 重启 crontab 服务用于执行 linux 定时任务. 重启服务命令: service crond restart启动服务命令: service crond st ...

  7. centos 7 重启mysql_centOS7 如何启动/停止/重启MySQL

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...

  8. ubuntu下如何启动MySQL_如何ubuntu下启动/停止/重启MySQL

    如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mysql star ...

  9. 如何ubuntu下启动停止重启MySQL

    如何启动/停止/重启MySQL 一. 启动方式 1.使用 service 启动:service mysql start 2.使用 mysqld 脚本启动:/etc/inint.d/mysql star ...

最新文章

  1. ZedGraph怎样在双击图形后添加箭头标记
  2. NeurlPS 2021论文预讲会议题全公开,4大主题和25场报告等你来
  3. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索
  4. mysql select db error_select error:不能用DB-library(如isql)不能用DB-library(如isql
  5. python大学什么专业学校_好学校的差专业和一般大学的好专业,该怎么选?我来说真话……...
  6. Learnopengl
  7. Oracle操作管理之用户和角色
  8. 数据架构建设方法及案例
  9. 大数据智能营销系统的作用
  10. Top,vmstat命令排查CPU使用率,负载问题
  11. 企业如何进行融资(企业融资的6大正确方式)
  12. 2009年研究生入学考试西医综合科目试题
  13. strcmp()函数:将指定的两个字符串进行比较。
  14. 前端工程化 | 工程化技术基础
  15. 淘宝开放平台阿里奇门对接联调教程详细操作
  16. 如何设置敬业签定时提醒待办事项?
  17. mysql数据库二级好考吗_计算机二级考试选考哪个科目最好?
  18. oracle删除表结构或者表数据
  19. vga2usb linux,VGA to USB采集器
  20. CentOS7修改主机名称(hostname)

热门文章

  1. Android_自定义水波纹菜单弹出效果
  2. [FWT] UOJ #310. 【UNR #2】黎明前的巧克力
  3. Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies 【贪心 】
  4. django类视图简单使用和源码解析
  5. BIO ,NIO,AIO的区别
  6. Supervisor-类unix系统下的进程控制工具
  7. 原创:Spring整合junit测试框架(简易教程 基于myeclipse,不需要麻烦的导包)
  8. html中的特殊符号
  9. VMWare 8 安装 Mac OS 10.7 (Lion)版 【转】
  10. Array提供的方法