2011-03-18 102 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软件客户端这样做。

你也可以使用相同的图标与叠加,也许在右下角或类似的东西,一个小沙漏,然后将其删除。

也许每次用户启动时显示一个进度条可能是相当干扰和恼人的。