1

UI だけが Windows タスク バー アイコンであるアプリを作成しました。アプリを直接起動すると (Windows エクスプローラーでダブルクリックするなど)、タスク バーのアイコンが正しく表示されます。このアプリが常に実行されていることを確認する必要があります。そのために、アプリがまだ実行されているかどうかを10秒ごとにチェックするWindowsサービスをC#で作成し、そうでない場合は呼び出して再起動します

System.Diagnostics.Process.Start("MyApp.exe");

タスクマネージャーから見えるように、プロセスが開始されます。しかし、タスクバーのアイコンが見つかりません。私が気づいたことの 1 つは、それが Window Service から開始されたときにシステム ユーザー名で実行されることです。

Windows サービスから起動したときにタスク バー アイコンを表示するにはどうすればよいですか?

4

1 に答える 1

1

サービスは、Vista または Win7 のユーザーと同じデスクトップにアクセスできません。既定では、他のプロセスによって開始されたアプリケーションは、それらを起動したアプリと同じ権限を持ちます (同じアカウントで実行されます)。サービスをユーザー アカウントで実行するか、ImpersonateLoggedOnUserを使用する必要があります(この関数の .NET バージョンが不明です。これを出発点として見つけられることを願っています)。

于 2011-03-20T05:06:48.130 に答える