• C# 系统服务添加安装


    Installer1.cs


     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Configuration.Install;
     5 using System.ServiceProcess;
     6 
     7 namespace WindowsService1
     8 {
     9     [RunInstaller(true)]
    10     public partial class Installer1 : Installer
    11     {
    12         private ServiceInstaller serviceInstaller;
    13         private ServiceProcessInstaller processInstaller;
    14 
    15         public Installer1()
    16         {
    17             InitializeComponent();
    18             serviceInstaller = new ServiceInstaller();
    19             processInstaller = new ServiceProcessInstaller();
    20 
    21             //设定安装后的运行模式
    22             processInstaller.Account = ServiceAccount.LocalSystem;
    23 
    24             //如果需要改用其他用户来模拟运行,则需要改为ServiceAccount.User
    25             //processInstaller.Username = "administrator";
    26             //processInstaller.Password = "abcdefg";
    27 
    28             serviceInstaller.ServiceName = "SnowFoxService";
    29             serviceInstaller.Description = "SnowFox Test Windows Service";
    30 
    31             serviceInstaller.AfterInstall += new InstallEventHandler(serviceInstaller_AfterInstall);
    32             serviceInstaller.BeforeUninstall += new InstallEventHandler(serviceInstaller_BeforeUninstall);
    33 
    34             //将两个服务装到包里面去
    35             Installers.Add(serviceInstaller);
    36             Installers.Add(processInstaller);
    37             //打完收工
    38         }
    39 
    40         void serviceInstaller_BeforeUninstall(object sender, InstallEventArgs e)
    41         {
    42             //这里的目的是指当服务需要卸载的时候,则先将服务暂停运行
    43             ServiceController con = new ServiceController("SnowFoxService");
    44             try
    45             {
    46                 if (con.Status != ServiceControllerStatus.Stopped)
    47                 {
    48                     con.Stop();
    49                 }
    50             }
    51             catch 
    52             {
    53             }
    54             
    55             
    56             //throw new Exception("The method or operation is not implemented.");
    57         }
    58 
    59         void serviceInstaller_AfterInstall(object sender, InstallEventArgs e)
    60         {
    61             //这里的目的是指当服务被安装后,需要将服务启动,因此首先需要得到这个服务的对象,然后再START
    62             ServiceController con = new ServiceController(serviceInstaller.ServiceName);
    63             con.Start();
    64             //throw new Exception("The method or operation is not implemented.");
    65         }
    66     }
    67 }

    Services1.cs


     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Diagnostics;
     6 using System.ServiceProcess;
     7 using System.Text;
     8 
     9 namespace WindowsService1
    10 {
    11     public partial class Service1 : ServiceBase
    12     {
    13         public Service1()
    14         {
    15             InitializeComponent();
    16         }
    17 
    18         protected override void OnStart(string[] args)
    19         {
    20             // TODO: 在此处添加代码以启动服务。
    21             this.EventLog.WriteEntry("AAAAAAAAAAAAAAAAAAAAAAAAAAAA", EventLogEntryType.Information);
    22         }
    23 
    24         protected override void OnStop()
    25         {
    26             // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
    27 
    28             
    29         }
    30     }
    31 }
    32 
  • 相关阅读:
    编译原理基础知识---文法和语言(一)
    编译原理简单知识总结(一)---编译程序和解释程序
    python网络编程
    博客声明
    v4l2编程
    Linux中的虚拟文件系统
    linux 内核文件中Makefile、kconfig、.config的关系(SDK结构)
    shell编程---find命令
    springcloud、springboot 版本号解析
    List<Map<String, Object>> 与 json 互转
  • 原文地址:https://www.cnblogs.com/love2wllw/p/1736065.html
Copyright © 2020-2023  润新知