C#經由過程創立Windows辦事啟動法式的辦法詳解。本站提示廣大學習愛好者:(C#經由過程創立Windows辦事啟動法式的辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#經由過程創立Windows辦事啟動法式的辦法詳解正文
本文實例講述了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. 裝置辦事
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#法式設計有所贊助。