国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#通過創建Windows服務啟動程序的方法詳解

2019-10-29 21:25:12
字體:
來源:轉載
供稿:網友

本文實例講述了C#通過創建Windows服務啟動程序的方法。分享給大家供大家參考,具體如下:

1. 新建一個Windows服務應用程序

創建項目——》Visual C# 左側的"+"——》Windows ——》Windows 服務(右側模板)——》輸入名稱,確定創建項目

2. 設置Windows服務的屬性(Windows服務里沒有窗體,所以點擊左側設計器里空白的地方即可在右側屬性欄里看到屬性)

這里屬性是控制服務器是否可以停止,暫停,繼續等等的操作。根據需要選擇。屬性的名字已經很明白了,不需要再做太多解釋。我是把 CanPauseAndContinue 和 CanShutDown 設置為 true。

ServiceName 屬性是這個服務的以后再服務管理器中顯示的名稱。

3. 設置Windows服務的安裝程序

在設計窗口里右鍵單擊鼠標,選擇“添加安裝程序”。這樣就可以添加 ProjectInstaller.cs 以及serviceInstaller1 和 serviceProcessInstaller1 這兩個對象都有一個比較重要的屬性。

單擊 serviceInstaller1 在右側的屬性窗口里有 StartType 屬性,指定的是啟動服務的方式和時間。如果想讓服務開機啟動,并一直運行,將這個屬性設置為 Automatic。

單擊 serviceProcessInstaller1 在右側的屬性窗口里有 Account 屬性,指定的是運行此服務的帳戶類型。如果想讓所有用戶都使用這個服務,將這個屬性設置為 LocalService

目前所有的創建及屬性設置工作就結束了。下面開始進行代碼編寫工作。

4. 需要用計時器來定時檢測程序是否運行,因此我們要增加一個Timer控件。

打開代碼窗口。

首先,增加 using System.Timers; 引用。

這里有OnStart(string[] args)和OnStop()兩個函數。顧名思義,OnStart 就是服務啟動時運行的代碼。OnStop就是服務結束時運行的代碼。

我們在OnStart里創建Timer控件,并設置其屬性和增加事件。

System.Timers.Timer t = new System.Timers.Timer(1000); //這里的1000指的是Timer的時間間隔為1000毫秒t.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Click); //Timer_Click是到達時間的時候執行事件的函數t.AutoReset = true; //設置是執行一次(false)還是一直執行(true)t.Enabled = true; //是否執行System.Timers.Timer.Elapsed事件

這樣,當服務運行后,每1秒都將執行 Timer_Click 函數

5. 編寫 Timer_Click 函數

private void Timer_Click(Object sender, ElapsedEventArgs e){  Process[] localByName = Process.GetProcessesByName("exe");  if (!IsExistProcess("exe")) //如果得到的進程數是0, 那么說明程序未啟動,需要啟動程序  {    Process.Start("exe"); //啟動程序的路徑  }  else  {    //如果程序已經啟動,則執行這一部分代碼  }}private bool IsExistProcess(string processName){  Process[] MyProcesses = Process.GetProcesses();  foreach (Process MyProcess in MyProcesses)  {    if (MyProcess.ProcessName.CompareTo(processName) == 0)    {      return true;    }  }  return false;}

現在所有代碼的工作也完成了。

6. 生成Windows服務的應用程序

單擊 生成 ——》生成 WindowsService1
這時,在 D:/Soft/WindowsService1/bin/Debug 文件夾里會生成 WindowsService1.exe 文件。
如果成功即可執行下一步。

7. 安裝服務

C#,創建,Windows服務,啟動程序

C#,創建,Windows服務,啟動程序

C#,創建,Windows服務,啟動程序

serviceInstaller1屬性中設置:

Description(系統服務的描述)
DisplayName (系統服務中顯示的名稱)
ServiceName(系統事件查看器里的應用程序事件中來源名稱)

serviceProcessInstaller1屬性設置:Account 下拉設置成 LocalSystem

服務與應用程序不一樣,不能夠通過在Visual Studio里運行,必須使用安裝軟件安裝到Windows 服務里去。完成上面三個截圖的操作后,繼續下面注冊和卸載操作。

這個安裝軟件在 C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319 這個文件夾里

程序名稱為 InstallUtil.exe
要運行這個程序需要使用 command "命令提示符" 程序。

單擊開始——》運行——》輸入"cmd”單擊確定
輸入cd C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319 回車 進入這個文件夾
輸入InstallUtil D:/Soft/WindowsService1/bin/Debug/WindowsService1.exe 即InstallUtil + 服務.exe文件的地址 回車。這時服務就安裝完畢了。
如果想卸載這個服務也是用這個軟件。
輸入InstallUtil D:/Soft/WindowsService1/bin/Debug/WindowsService1.exe -u 即"InstallUtil + 服務.exe文件的地址 - u" 回車。這時服務就卸載完畢了。
當然我們現在不需要卸載這個服務。現在只差最后一步實現我們的功能了。

8. 啟動服務

服務安裝成功以后,并沒有啟動,我們需要在服務管理器中啟動它,并且如果運行的程序是帶窗體的程序,還需要修改一下服務的屬性。

進入控制面板——》管理工具——》服務 打開服務管理器。或者運行-------->cmd------->services.msc---本地服務設置

在右側的服務列表中找到我們剛才安裝的服務,服務名稱就是第2步中ServiceName屬性的內容。這里就是WindowsService1。

如果運行的程序是帶窗體的程序,那么右鍵單擊這個服務選擇“屬性”——》單擊“登錄”標簽(在最上面)——》選擇本地系統帳戶——》在“允許服務與桌面交互”復選框前打勾——》單擊確定退出屬性。

這是,帶有窗體的程序才會正常運行。否則只會在進程中看到該程序,但是沒有窗體。

現在可以單擊這個服務,然后單擊啟動來啟動這個服務了。

全部過程結束。

你也可以為服務創建安裝!

希望本文所述對大家C#程序設計有所幫助。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广安市| 定南县| 吉首市| 个旧市| 高雄县| 叙永县| 喜德县| 龙游县| 扶余县| 于都县| 普兰店市| 吴旗县| 和田县| 弥渡县| 奉新县| 赞皇县| 泸定县| 韶关市| 普兰店市| 韶山市| 贵南县| 开远市| 新和县| 合阳县| 河北省| 且末县| 巴里| 离岛区| 淅川县| 南漳县| 大新县| 凌云县| 防城港市| 武宁县| 安图县| 疏附县| 阜阳市| 常德市| 清新县| 修水县| 涞源县|