如果有一個應用程序,想要在電腦開機的時候自動啟動(即使用戶未登錄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