類似的對於“停止服務”,其點擊事件處理為
private void btnStopService_Click(object sender, EventArgs e)
{
if (bolServiceInstalled == false)
return;
using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSystemWatcher"))
{
if (control.Status == System.ServiceProcess.ServiceControllerStatus.Running)
{
control.Stop();
}
}
}
在這個處理過程中,若判斷出服務狀態為運行中,則調用控制器的Stop方法 來停止服務。在這裡Stop方法內部只是通知操作系統停止指定的服務,它發送通知後立即返 回,不會等待服務停止後返回。
我們還在窗體上放置一個定時器控件,定時間隔為2 秒,用於根據服務的狀態刷新工具條按鈕狀態,其定時事件處理為
private void myTimer_Tick(object sender, EventArgs e)
{
if (bolServiceInstalled == false)
return;
using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSystemWatcher"))
{
btnStartService.Enabled = (control.Status == System.ServiceProcess.ServiceControllerStatus.Stopped);
btnStopService.Enabled = (control.Status == System.ServiceProcess.ServiceControllerStatus.Running);
}
}
在這裡我們創建了一個綁定到文件系統監控服務的ServiceController對象 ,然後根據它的Status狀態來設置“啟動服務”和“停止服務”按鈕 的可用狀態。
系統配置對話框 dlgConfig
在客戶端主窗體中點擊工具條的 “系統配置”按鈕就會彈出系統設置對話框,該對話框的用戶界面為