C# 如果特定应用程序打开和关闭,我如何触发启动windows service应用程序?
示例:Skype将是触发我的服务的应用程序,如果Skype打开,我的服务将启动。如果skype关闭,则我的服务应关闭。可能吗 我想将状态放在我的事件日志中,以检查它是否确实可以使用以下内容:C# 如果特定应用程序打开和关闭,我如何触发启动windows service应用程序?,c#,.net,windows-services,C#,.net,Windows Services,示例:Skype将是触发我的服务的应用程序,如果Skype打开,我的服务将启动。如果skype关闭,则我的服务应关闭。可能吗 我想将状态放在我的事件日志中,以检查它是否确实可以使用以下内容: protected override void OnStart(string[] args) { galaxyeventLog.WriteEntry("Skype Start"); } protected override void OnStop() {
protected override void OnStart(string[] args)
{
galaxyeventLog.WriteEntry("Skype Start");
}
protected override void OnStop()
{
galaxyeventLog.WriteEntry("Skype Stop");
}
简单解决方案的问题在于,他们将要求服务已经运行 但是,您可以做的是,当您在列表中没有看到skype时,禁用所有服务行为,并在实际看到skype时启用它 为此,应使用以下方法定期检查打开的进程:
Process[] processlist = Process.GetProcesses();
System.Diagnostics代码>名称空间
希望这对你有所帮助。=)以下是你的方法
您需要开发SkypeMonitor服务(第三个服务应用程序)。它的工作是跟踪Skype进程。这可以使用WMI接口完成。示例代码可以在中找到
使用它,您可以连接到启动和停止skype进程事件,使用下面的代码启动/停止您的服务
ServiceController=新的ServiceController(serviceName);
if(controller.Status==ServiceControllerStatus.Stopped)
controller.Start()