VS2015 定時服務及控制端

?

一.? 服務端

  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 = 5000;//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();}
View Code

效果如圖:

其他代碼待續。。。。

?

轉載于:https://www.cnblogs.com/SoftWareIe/p/9732760.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388347.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388347.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388347.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

css文件如何設置scss,Webpack - 如何將scss編譯成單獨的css文件?

2 個答案:答案 0 :(得分&#xff1a;3)這是我在嘗試將css編譯成單獨文件時使用的webpack.config.js文件|-- App|-- dist|-- src|-- css|-- header.css|-- sass|-- img|-- partials|-- _variables.scss|-- main.scss|--ts|-- tsconfig.json|-- user.ts|-- main.js|-- app.js|-- …

Iphone表視圖的簡單操作

1.創建一個Navigation—based—Application項目&#xff0c;這樣Interface Builder中會自動生成一個Table View&#xff0c;然后將Search Bar拖放到表示圖上&#xff0c;以我們要給表示圖添加搜索功能&#xff0c;不要忘記將Search Bar的delegate連接到File‘s Owner項&#xf…

PhantomJS的使用

PhantomJS安裝下載地址 配置環境變量 成功&#xff01; 轉載于:https://www.cnblogs.com/hankleo/p/9736323.html

aws emr 大數據分析_DataOps —使用AWS Lambda和Amazon EMR的全自動,低成本數據管道

aws emr 大數據分析Progression is continuous. Taking a flashback journey through my 25 years career in information technology, I have experienced several phases of progression and adaptation.進步是連續的。 在我25年的信息技術職業生涯中經歷了一次閃回之旅&…

21eval 函數

eval() 函數十分強大 ---- 將字符串 當成 有效的表達式 來求職 并 返回計算結果 1 # 基本的數學計算2 print(eval("1 1")) # 23 4 # 字符串重復5 print(eval("* * 5")) # *****6 7 # 將字符串轉換成列表8 print(eval("[1, 2, 3, 4]")) # [1,…

聯想r630服務器開啟虛擬化,整合虛擬化 聯想萬全R630服務器上市

虛擬化技術的突飛猛進&#xff0c;對運行虛擬化應用的服務器平臺的運算性能提出了更高的要求。近日&#xff0c;聯想萬全R630G7正式對外發布。這款計算性能強勁&#xff0c;IO吞吐能力強大的四路四核服務器&#xff0c;主要面向高端企業級應用而開發。不僅能夠完美承載大規模數…

Iphone屏幕旋轉

該示例是想在手機屏幕方向發生改變時重新定位視圖&#xff08;這里是一個button&#xff09; 1.創建一個View—based Application項目,并在View窗口中添加一個Round Rect Button視圖&#xff0c;通過尺寸檢查器設置其位置&#xff0c;然后單擊View窗口右上角的箭頭圖標來旋轉窗…

先進的NumPy數據科學

We will be covering some of the advanced concepts of NumPy specifically functions and methods required to work on a realtime dataset. Concepts covered here are more than enough to start your journey with data.我們將介紹NumPy的一些高級概念&#xff0c;特別是…

lsof命令詳解

基礎命令學習目錄首頁 原文鏈接&#xff1a;https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html 簡介 lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下&#xff0c;任何事物都以文件的形式存在&#xff0c;通過文件不僅僅可以訪問常規…

Xcode中捕獲iphone/ipad/ipod手機攝像頭的實時視頻數據

目的&#xff1a;打開、關閉前置攝像頭&#xff0c;繪制圖像&#xff0c;并獲取攝像頭的二進制數據。 需要的庫 AVFoundation.framework 、CoreVideo.framework 、CoreMedia.framework 、QuartzCore.framework 該攝像頭捕抓必須編譯真機的版本&#xff0c;模擬器下編譯不了。 函…

統計和冰淇淋

Photo by Irene Kredenets on UnsplashIrene Kredenets在Unsplash上拍攝的照片 摘要 (Summary) In this article, you will learn a little bit about probability calculations in R Studio. As it is a Statistical language, R comes with many tests already built in it, …

信息流服務器哪種好,選購存儲服務器需要注意六大關鍵因素,你知道幾個?

原標題&#xff1a;選購存儲服務器需要注意六大關鍵因素&#xff0c;你知道幾個&#xff1f;信息技術的飛速發展帶動了整個信息產業的發展。越來越多的電子商務平臺和虛擬化環境出現在企業的日常應用中。存儲服務器作為企業建設環境的核心設備&#xff0c;在整個信息流中承擔著…

t3 深入Tornado

3.1 Application settings 前面的學習中&#xff0c;在創建tornado.web.Application的對象時&#xff0c;傳入了第一個參數——路由映射列表。實際上Application類的構造函數還接收很多關于tornado web應用的配置參數。 參數&#xff1a; debug&#xff0c;設置tornado是否工作…

vml編輯器

<HTML xmlns:v> <HEAD> <META http-equiv"Content-Type" content"text/html; Charsetgb2312"> <META name"GENERATOR" content"網絡程序員伴侶(Lshdic)2004"> <META name"GENERATORDOWNLOADADDRESS&q…

對數據倉庫進行數據建模_確定是否可以對您的數據進行建模

對數據倉庫進行數據建模Some data sets are just not meant to have the geospatial representation that can be clustered. There is great variance in your features, and theoretically great features as well. But, it doesn’t mean is statistically separable.某些數…

15 并發編程-(IO模型)

一、IO模型介紹 1、阻塞與非阻塞指的是程序的兩種運行狀態 阻塞&#xff1a;遇到IO就發生阻塞&#xff0c;程序一旦遇到阻塞操作就會停在原地&#xff0c;并且立刻釋放CPU資源 非阻塞&#xff08;就緒態或運行態&#xff09;&#xff1a;沒有遇到IO操作&#xff0c;或者通過某種…

arduino消息服務器,在C(Arduino IDE)中將API鏈接消息解析為服務器(示例代碼)

我正在使用Arduino IDE來編程我的微控制器&#xff0c;它有一個內置的Wi-Fi芯片(ESP8266 NodeMCU)&#xff0c;它連接到我的互聯網路由器&#xff0c;然后有一個特定的IP(就像192.168.1.5)。所以我想通過添加到鏈接的消息發送命令(和數據)&#xff0c;然后鏈接變為&#xff1a;…

不提拔你,就是因為你只想把工作做好

2019獨角獸企業重金招聘Python工程師標準>>> 我有個朋友&#xff0c;他30出頭&#xff0c;在500強公司做技術經理。他戴無邊眼鏡&#xff0c;穿一身土黃色的夾克&#xff0c;下面是一條常年不洗的牛仔褲加休閑皮鞋&#xff0c;典型技術高手范。 三 年前&#xff0c;…

python內置函數多少個_每個數據科學家都應該知道的10個Python內置函數

python內置函數多少個Python is the number one choice of programming language for many data scientists and analysts. One of the reasons of this choice is that python is relatively easier to learn and use. More importantly, there is a wide variety of third pa…

C#使用TCP/IP與ModBus進行通訊

C#使用TCP/IP與ModBus進行通訊1. ModBus的 Client/Server模型 2. 數據包格式及MBAP header (MODBUS Application Protocol header) 3. 大小端轉換 4. 事務標識和緩沖清理 5. 示例代碼 0. MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE 下載地址&#xff1a;http://www.modb…