2012-10-24 27 views
2

示例:Skype将成为触发我的服务的应用程序,如果Skype打开,那么我的服务应该启动。如果Skype关闭,那么我的服务应该关闭。那可能吗?如何启动我的Windows服务应用程序,如果特定的应用程序打开和关闭?

我希望把我的事件日志状态,以检查它是否真的适用于使用这样的事情:

protected override void OnStart(string[] args) 
    { 
     galaxyeventLog.WriteEntry("Skype Start"); 
    } 

    protected override void OnStop() 
    { 
     galaxyeventLog.WriteEntry("Skype Stop"); 
    } 

回答

2

这里是你如何能做到这

  1. 你需要制定一个SkypeMonitor服务(第三服务应用程序)。其工作是跟踪Skype流程。这可以使用WMI界面完成。示例代码可以在

    .NET Process Monitor

  2. 被发现使用它可以挂接到启动和停止使用Skype处理事件开始/使用下面

    ServiceController的控制器=新的ServiceController代码停止服务(服务名); if(controller.Status == ServiceControllerStatus.Stopped) controller.Start();

+0

你打我吧! – Arrow

1

的问题,简单的解决办法是,他们将需要该服务是已经运行

但是,您可以做的是禁用所有服务行为,只要您在列表中看不到Skype,并在您实际看到它时启用它。

为了做到这一点,你应该定期使用检查开放进程:

Process[] processlist = Process.GetProcesses(); 
System.Diagnostics;命名空间的

希望这有助于=)

相关问题