2012-10-24 49 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;命名空間的

希望這有助於=)

相關問題