123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Configuration.Install;
- using System.Data;
- using System.Data.SqlClient;
- using System.Drawing;
- using System.ServiceProcess;
- using System.Text;
- using System.Windows.Forms;
- namespace SunRoxmDTS.Test
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- SunRoxmDTS dts = new SunRoxmDTS();
- dts.Start();
- InitializeComponent();
- }
- string serviceFilePath = $"{Application.StartupPath}\\SunRoxmDTS.exe";
- string serviceName = "GetSunRoxmDTSNew";
- private void btnInstall_Click(object sender, EventArgs e)
- {
- if (this.IsServiceExisted(serviceName)) this.UninstallService(serviceName);
- this.InstallService(serviceFilePath);
- }
- private void btnUninstall_Click(object sender, EventArgs e)
- {
- if (this.IsServiceExisted(serviceName))
- {
- this.ServiceStop(serviceName);
- this.UninstallService(serviceFilePath);
- }
- }
- private void btnStart_Click(object sender, EventArgs e)
- {
- if (this.IsServiceExisted(serviceName)) this.ServiceStart(serviceName);
- }
- private void btnStop_Click(object sender, EventArgs e)
- {
- if (this.IsServiceExisted(serviceName)) this.ServiceStop(serviceName);
- }
- //判断服务是否存在
- private bool IsServiceExisted(string serviceName)
- {
- ServiceController[] services = ServiceController.GetServices();
- foreach (ServiceController sc in services)
- {
- if (sc.ServiceName.ToLower() == serviceName.ToLower())
- {
- return true;
- }
- }
- return false;
- }
- //安装服务
- private void InstallService(string serviceFilePath)
- {
- using (AssemblyInstaller installer = new AssemblyInstaller())
- {
- installer.UseNewContext = true;
- installer.Path = serviceFilePath;
- IDictionary savedState = new Hashtable();
- installer.Install(savedState);
- installer.Commit(savedState);
- }
- }
- //卸载服务
- private void UninstallService(string serviceFilePath)
- {
- using (AssemblyInstaller installer = new AssemblyInstaller())
- {
- installer.UseNewContext = true;
- installer.Path = serviceFilePath;
- installer.Uninstall(null);
- }
- }
- //启动服务
- private void ServiceStart(string serviceName)
- {
- using (ServiceController control = new ServiceController(serviceName))
- {
- if (control.Status == ServiceControllerStatus.Stopped)
- {
- control.Start();
- }
- }
- }
- //停止服务
- private void ServiceStop(string serviceName)
- {
- using (ServiceController control = new ServiceController(serviceName))
- {
- if (control.Status == ServiceControllerStatus.Running)
- {
- control.Stop();
- }
- }
- }
- }
- }
|