構成されたアプリケーションがプロセスで実行されているかどうかを確認するために、c# で Windows サービス アプリケーションを作成しました。たとえば、OUTLOOK を構成し、Outlook が開いているか閉じているかをアプリケーション プロセス リストでチェックした場合、アプリケーションがプロセス リストで OUTLOOK を見つけられなかった場合、アプリケーションの OUTLOOK が閉じているかクラッシュしているというメールが届きます。
これをコードで実行しようとすると、OUTLOOK が閉じている場合にのみ電子メールが送信されますが、Service を使用して実行している場合は、OUTLOOK が実行されていても電子メールが送信されます。
私のサービスがアプリケーション プロセス リストのアプリケーションを認識できない理由を教えてください。
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);
}