コンピューターで実行され、コンピューターの電源がオンになったときに初期化されるWindowsサービスがあります(他のサービスとの依存関係はいくつかありますが、サービスの直後に初期化されます)。
次に、実行するサービスに依存する別のアプリケーションがあります(アプリケーションにはUIが含まれています)。
サービスが開始されるたびにこのアプリケーションを開始したいと思います。したがって、サービスの「OnStart()」イベントで次のコードを使用します。
var process = new Process();
process.StartInfo = new ProcessStartInfo
{
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Maximized
};
try
{
process = Process.Start(applicationPath);
return (true);
}
catch (Exception e)
{
Logger.Log("ApplicationHelper::OpenApplication Error: " + e.Message);
Logger.Log(applicationPath);
return (false);
}
アプリケーションのプロセスが実行を開始しますが、UIは表示されません。プロセスがタスクマネージャーで実行されていることだけがわかります。Windowsサービスからアプリケーションを起動するにはどうすればよいですか?
デスクトップと対話するオプションをすでに有効にしましたが、役に立ちませんでした。
.Net4とWindows7を使用しています。
ありがとう!
実際、サービスを開こうとすると、メッセージを送信しようとしている現在ログに記録されているユーザーとは異なるユーザーであることを示すWindowsメッセージがポップアップ表示されます。しかし、サービスの開始ユーザーを現在のユーザーに構成することはできません。