一.  服务端

  1. 如下图—新建项目—经典桌面—Windows服务—起名svrr

2. 打到server1 改名为svrExecSqlInsert 右击对应的设计界面,添加安装服务目录结构如图

3. svrExecSqlInsert里有打到OnStart()方法开始写代码如下

        /// <summary>
/// 服务开启操作
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
Timer tmInsert = new Timer();
tmInsert.Interval = ;//5秒的定时器
tmInsert.Elapsed += TmInsert_Elapsed;
tmInsert.Enabled = true;
} /// <summary>
/// 定时执行数据库插入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TmInsert_Elapsed(object sender, ElapsedEventArgs e)
{
using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=123;database=oa"))
{
using (SqlCommand cmd = new SqlCommand())
{
con.Open();
cmd.Connection = con;
cmd.CommandText = @"insert into UserInfo(UserName,Password,dutyid,RegTime,email)
values('test','123',0,GETDATE(),'a@b.com')";
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery(); } }
}

到现在服务端就完成了 选通过命令安装后 看看数据库中的变化 已经生成了很多数据了

二.  服务控制端 有时我们同一个服务可能通过配置文件等对不同实例的数据库进行操作而服务又要安在同一台电脑上,不要说用的人员了就是.net开发的人员对这一些命令也有点头大,那么就有了控制断,这个先建一个窗体应用程序

1. 将form1改为frmMain 放一个menuStrip 管理服务(安装、卸载、刷新)、操作服务(启动、停止)、退出 再加一下dataGridView Dock=fill

2. 增加一个ServiceInfo类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace SvrUI
{
public class ServerInfo
{
public string SvrName { get; set; }
public string SvrDisplayName { get; set; }
public string SvrDescription { get; set; }
public string SvrPath { get; set; }
}
}

3在frmMain窗体中加入如下代码来显示计算机中的服务列表 如果要显示自己安装的服务可通过安半时限制服务前缀或后缀过滤一下

 public frmMain()
{
InitializeComponent();
IniControls();
IniData();
}
/// <summary>
///1. 添加控件
/// </summary>
private void IniControls()
{
DataGridViewCell cellTemple = new DataGridViewTextBoxCell();
dataGridView1.Columns.AddRange(new DataGridViewColumn[] {
new DataGridViewTextBoxColumn() { Name="SvrName",HeaderText="服务名称",DataPropertyName="SvrName",CellTemplate=cellTemple },
new DataGridViewTextBoxColumn() { Name="SvrDisplayName",HeaderText="服务显示名称",DataPropertyName="SvrDisplayName",CellTemplate=cellTemple},
new DataGridViewTextBoxColumn() { Name="SvrDescription",HeaderText="服务描述名称",DataPropertyName="SvrDescription",CellTemplate=cellTemple},
new DataGridViewTextBoxColumn() { Name="SvrStatus",HeaderText="服务状态",DataPropertyName="SvrStatus",CellTemplate=cellTemple},
new DataGridViewTextBoxColumn() { Name="SvrPath",
HeaderText ="服务路径",DataPropertyName="SvrPath",CellTemplate=cellTemple,AutoSizeMode= DataGridViewAutoSizeColumnMode.Fill}
});
} /// <summary>
///2. 初始化数据
/// </summary>
private void IniData()
{
//显示服务列表 如果只控制自己安装的服务 可以在安装时限制显示的名称 如显示名称必须包含MySvr:
// var svrs = ServiceController.GetServices().Where(svr=>svr.DisplayName.Contains("MySvr"));
var svrs = ServiceController.GetServices();//显示电脑的全部服务 List<ServiceInfo> lst = new List<ServiceInfo>();
foreach (var svr in svrs)
{
string description = "";
string cpath = GetWindowsServiceInstallPath(svr.ServiceName, out description);
lst.Add(new ServiceInfo() { SvrName = svr.ServiceName, SvrDisplayName = svr.DisplayName, SvrStatus = svr.Status.ToString(), SvrDescription = description, SvrPath = cpath }); } dataGridView1.DataSource = lst; } /// <summary>
/// 获取服务安装路径
/// </summary>
/// <param name="ServiceName"></param>
/// <returns></returns>
public string GetWindowsServiceInstallPath(string ServiceName, out string description)
{
string key = @"SYSTEM\CurrentControlSet\Services\" + ServiceName;
string path = Registry.LocalMachine.OpenSubKey(key).GetValue("ImagePath").ToString();
description = (Registry.LocalMachine.OpenSubKey(key).GetValue("Description") ?? "").ToString();
//替换掉双引号
path = path.Replace("\"", string.Empty);
return path;
} private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}

效果如图:

其他代码待续。。。。

VS2015 定时服务及控制端的更多相关文章

  1. VS2015 C#.net4.6 windows的定时服务

    1.创建项目 C#->经典桌面->windows服务 2.创建定时服务 找到服务1,自动生成了 OnStart(服务开启时运行),OnStop(服务关闭时运行)两个函数,我们需要在开启时新 ...

  2. VS2013创建Windows服务 || VS2015+Windows服务简易教程

    转自:https://www.cnblogs.com/no27/p/4849123.htmlhttps://blog.csdn.net/ly416/article/details/78860522 V ...

  3. Spring定时服务QuartZ

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等. 我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作, ...

  4. CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)

    上一章介绍了独立的nova计算节点的安装方法,本章分享openstack的网络服务neutron的安装配制方法 ------------------- 完美的分割线 ----------------- ...

  5. Openstack(九)部署nova服务(控制节点)

    9.1nova服务介绍 nova是openstack最早的组件之一,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nov ...

  6. 第九章 Net 5.0 快速开发框架 YC.Boilerplate --定时服务 Quartz.net

    在线文档:http://doc.yc-l.com/#/README 在线演示地址:http://yc.yc-l.com/#/login 源码github:https://github.com/linb ...

  7. 带控制端的逻辑运算电路_分别完成正整数的平方、立方和阶乘的运算verilog语言

    练习:设计一个带控制端的逻辑运算电路,分别完成正整数的平方.立方和阶乘的运算. //--------------myfunction---------- modulemyfunction(clk,n, ...

  8. LBPL--基于Asp.net、 quartz.net 快速开发定时服务的插件化项目

    LBPL 这一个基于Asp.net. quartz.net 快速开发定时服务的插件化项目 由于在实际项目开发中需要做定时服务的操作,大体上可以理解为:需要动态化监控定时任务的调度系统. 为了实现快速开 ...

  9. C# windows定时服务+服务邮箱发送

    protected override void OnStart(string[] args) { timer1 = new System.Timers.Timer(); // timer1 = new ...

随机推荐

  1. PHP 原生上传图片

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...

  2. Python 字符串常用判断函数

    判断字符串常用函数: S代表某字符串 S.isalnum()  所有字符都是数字或字母,为真返回Ture,否则返回False S.isalha()     所有字符都是字母,为真返回Ture,否则返回 ...

  3. java入门之:Hello World

    import java.util.Scanner; public class HelloWorld{ public static void main(String[] args){ //向终端打印he ...

  4. Neo4j基础入门

    图数据库基础知识 图数据库以图这种数据结构为基础,可以保存任意种类的数据,以下图为基础,简单介绍Neo4j中的几个简单概念: 1.节点(Nodes) 表示图数据库的实体(entities),代表图数据 ...

  5. List、Map、Set三个接口存取元素时,各有什么特点

    List接口以特定索引来存取元素,可以有重复元素 Set接口不可以存放重复元素(使用equals方法区分是否重复) Map接口保存的是键值对(key-value-pair)映射,映射关系可以是一对一或 ...

  6. CXF异常:No operation was found with the name

    https://blog.csdn.net/qq_18675693/article/details/52134805 不同包下面,别忘了namespace最后要加“/”

  7. SVN版本管理与大型代码上线方案(一)

    SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  8. Nginx反向代理与负载均衡应用实践(一)

    Nginx反向代理与负载均衡应用实践(一) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...

  9. 杭电多校第四场-H- K-th Closest Distance

    题目描述 You have an array: a1, a2, , an and you must answer for some queries.For each query, you are g ...

  10. Linear Regression(一)——

    Linear Regression(一)-- 机器学习 回归 定义 回归的定义 在平面上存在这些点我希望能用一条直线尽可能经过它们. 于是我们画了下面的一条直线 这样的过程就叫做回归. 这个过程中我们 ...