zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    使用Hibernate需要导入的一些JAR包
    Eclipse+MyEclipse+Tomcat的配置
    ant安装、环境变量配置及验证
    怎样关闭占用80端口的pid为4的进程
    查看80端口是否被占用
    python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸
    WPF--鼠标右键菜单中的Command命令实现
    WPF-TreeView获取文件夹目录、DataGrid获取目录下文件信息
    IOS学习[Swift中跳转与传值]
    IOS学习【xcode 7新特性url链接】
  • 原文地址:https://www.cnblogs.com/love2wllw/p/1736065.html
Copyright © 2011-2022 走看看