2012-05-04 32 views
1

我已經寫在C#中的窗口服務應用找到閹配置的應用程序的過程中或不運行。舉例來說,如果我已經配置Outlook和在應用過程列表檢查如果Outlook打開/關閉,如果我的申請沒有發現在進程列表中Outlook,然後它的電子郵件我說你的應用前景是關閉或崩潰。我的Windows服務是不能夠識別流程

當我試圖在代碼中它是隻發送如果Outlook電子郵件封閉運行這個,但是當我使用的服務運行,則發送即使Outlook運行的電子郵件。

誰能請explian我爲什麼我的服務是無法識別的應用進程列表中的應用程序。

public void GetListofApplications(List<string> applicationsInConfig) 
    { 
     if (AppsInActive.Count > 0) 
     { 
      AppsInActive.Clear(); 
     } 
     StringBuilder sb = new StringBuilder(); 
     foreach (Process p in Process.GetProcesses(".")) 
      try 
      { 
       if (p.MainWindowTitle.Length > 0) 
       { 
        APPsInProcess.Add(p.ProcessName.ToString()); 
       } 
      } 
      catch(Exception ex) 
      { 
       Logger.Log("Exception in Finding Process" + ex); 
      } 

     foreach (var application in applicationsInConfig) 
     { 
      if (APPsInProcess.Contains(application)) 
      { 
       AppsActive.Add(application); 
      } 
      else 
      { 
       AppsInActive.Add(application); 
      } 
     } 

     foreach (var item in AppsInActive) 
     { 
      Logger.Log("Following application is either crashed/closed :" + item); 
     } 

     Helper.EmailSetup setup = new Helper.EmailSetup(); 
     setup.ApplicationFailedEmailSetup(AppsInActive, DateTime.Now); 
       } 
+0

你能告訴我們你是怎麼檢查OUTLOOK ? – Likurg

+0

您可以發佈您用於查找Outlook的代碼嗎? –

+0

請點擊我的問題點擊投票的傢伙。請提問,如果你不downvoting或explian明確 – 62071072SP

回答

1

嘗試檢查OUTLOOK這樣

  var _proc = Process.GetProcesses().Where(o => o.ProcessName.Contains("OUTLOOK")); 
      if (_proc.Count()>0) 
      { 
      } 

就在嘗試先找到只有前景,如果這沒有幫助,建議請

+0

是服務標識的前景 – 62071072SP

+0

@ 62071072出問題了嗎?你沒有標記 – Likurg

+0

@ 62071072謝謝 – Likurg