C# 編寫Windows服務實現開機啟動一個程序


如果有一個應用程序,想要在電腦開機的時候自動啟動(即使用戶未登錄Windows也要啟動),可以用Windows服務來實現,我只是很簡單的嘗試了一下,由於前段時間做的一個辦公QQ,在服務器端需要始終運行一個控制台程序來監聽各種消息,但不能每次開機手動去啟動這個控制台程序,所以就寫了一個Windows服務,我用VS2008寫的,以下是簡單做法:

先在VS中創建一個Windows服務的項目,在自動生成的service1.cs文件里添加如下語句:

string StartAppPath = @"C:\Program Files\辦公QQ服務\QQService.exe";

這是我要運行的控制台程序的路徑,你用的時候換成你的就可以了,然后在OnStart()函數中添加如下代碼:

try

            {

                Process proc = new Process();

                proc.StartInfo.FileName = StartAppPath; //注意路徑  

                proc.Start();

            }

            catch (System.Exception ex)

            {

                //錯誤處理  

            }  

    雙擊Service1.cs打開設計視圖,在設計視圖中右鍵,選擇添加安裝程序,然后在生成的ProjectInstaller.Designer.cs文件中的InitializeComponent()函數中添加如下代碼,具體作用不甚清楚:

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;  

 

            this.serviceInstaller1.ServiceName = "辦公QQ服務";     //我的服務名稱

            this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;    \\服務自動運行

    好了,現在可以編譯生成exe了,下面要用cmd命令將剛才寫的這個Windows服務安裝並啟動:

先cmd運行命令: cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\  

       進入.net2.0的文件夾,因為里面有個InstallUtil.exe的應用程序是我們需要用的,上面這個路徑是我安裝的路徑,你根據需要改成自己的就行了,然后繼續寫下一個cmd命令:

       InstallUtil C:\QQ_WinService.exe

       這個.exe應用程序是我開頭提到的用VS2008剛創建的,你也要根據需要換成你的,我直接把這個.exe拷出來放在C盤根目錄下了,你到時換成你自己的路徑就可以了

       提示服務安裝成功后,繼續寫下一個命令,啟動這個服務:

       net start 辦公QQ服務

       “辦公QQ服務”是我安裝的服務的名稱,這里也需要換成你自己的

       現在這個Windows服務就已經寫好了,當然,這些cmd命令也可以寫成一個批處理文件,要停止這個服務的話可以用:

       Net stop 辦公QQ服務

       然后刪除這個服務:

cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

InstallUtil /u C:\QQ_WinService.exe


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM