2011-03-18 104 views
1

我有一個C#Windows窗體交互式應用程序和相關的C#windows服務。C#Windows窗體GUI - 監視Windows啓動

在這些部署的特定機器上,登錄和應用程序啓動是自動的。交互式應用程序總是在服務之前啓動。該應用程序有一個狀態指示器,顯示它何時連接到服務,但這些機器速度很慢,我的服務需要45-60秒才能最終啓動。在此期間,屏幕上沒有任何事情發生。

我應該指出我的服務很快就會開始......這是需要一段時間才能啓動的依賴(和其他)服務。

我想在應用程序正在等待服務時顯示窗口啓動進度的某種指示。我正在考慮顯示一個進度條,顯示類似starts_automatic_services/automatic_services的內容。還有其他更合適的方法嗎?

回答

2

一種可能性是使用WMI event query監視服務啓動,這樣可以讓你至少給的進步

Starting services: 
Service 1 started 
Service 2 started etc. 

的想法的MSDN樣本Subscribing to and Consuming Management Events應該足以讓你去,因爲它具體說明了查詢狀態變化的服務。

+0

我從來沒有用過......好。 – pilotcam 2011-03-18 16:52:11

+0

需要注意的一點是,在查詢WMI之前必須啓動WMI服務 – pilotcam 2011-03-18 18:02:35

0

爲什麼不使用托盤圖標?表示與您的服務「斷開」或未初始化連接的圖像將是最初使用的圖像,一旦服務出現,您可以將其更改爲「正常」或「一切正常」圖標。一些AV軟件客戶端這樣做。

你也可以使用相同的圖標與疊加,也許在右下角或類似的東西,一個小沙漏,然後將其刪除。

也許每次用戶啓動時顯示一個進度條可能是相當干擾和惱人的。