C# 服务程序自带安装、卸载功能

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;

namespace ZentaoMailService
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0 && args[0] == "s")
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] 
                { 
                    new ZentaoService(),
                };
                ServiceBase.Run(ServicesToRun);
            }
            else
            {
                Console.WriteLine("这是Windows应用程序");
                Console.WriteLine("请选择,[1]安装服务 [2]卸载服务 [3]直接运行 [其他]退出");
                var rs = int.Parse(Console.ReadLine());
                switch (rs)
                {
                    case 1:
                        //取当前可执行文件路径,加上"s"参数,证明是从windows服务启动该程序
                        var path = Process.GetCurrentProcess().MainModule.FileName + " s";
                        Process.Start("sc", "create ZentaoService binpath= \"" + path + "\" displayName= ZentaoService start= auto");
                        Console.WriteLine("安装成功");
                        Console.Read();
                        break;
                    case 2:
                        Process.Start("sc", "delete ZentaoService");
                        Console.WriteLine("卸载成功");
                        Console.Read();
                        break;
                    case 3: 
                        MailHelper mail = new MailHelper();
                        mail.Start();
                        break;
                    default:
                        break;
                }
            }
        }
    }
}

 

posted @ 2017-12-21 11:37  都是城市惹的祸  阅读(90)  评论(0)    收藏  举报