C# と Windows Server 2003 で Windows サービスを作成しました。Windows フォーム アプリケーションである exe ファイルをサービスで実行できるようにしたいと考えています。サービスを開始すると、他のアプリケーションが実行されますが、表示されません。タスク マネージャーを開くと、アプリケーションが実行中であることはわかりますが、表示されません。「サービスがデスクトップと対話することを許可する」にチェックを入れましたが、何も起こりません。助けてください。Windows サービス内から実行して exe を実行し、widnows サーバー 2003 で実行されている exe を確認することはできますか?
4865 次
1 に答える
5
WindowsサービスからUIを表示することは、サービスがユーザーとは異なるデスクトップで実行されている可能性があるため、非常に問題があります(Vista / Server 2008では、実際には常に別のデスクトップで実行されます)。
最も簡単な解決策は、サービスから直接UIを実行するのではなく、何らかの方法でサービスと通信するユーザーのデスクトップで実行されているアプリケーション(ログイン時に実行するように設定されている可能性があります)からUIを実行することです。
覚えとけ:
- ログインしているユーザーがいない可能性があります
- ユーザーの高速切り替えまたはリモートデスクトップを使用して、複数のログインユーザーがいる可能性があります
- ユーザーデスクトップ上のアプリケーションは、サービスではなく、ユーザーのセキュリティコンテキストで実行されています
于 2008-10-07T09:14:06.337 に答える