質問: 現在VisualStudio2015を使いwindowsサービスを作成中で、あるディレクトリを監視しその配下にPDFファイルが生成された場合にexeファイルを実行させる処理をさせたいと考えています。 しかし、現段階ではサービスを起動させても画面上には何も起きず、 タスクマネージャー確認したところバックグラウンドでは実行されていました。 原因としては「セッション0の分離」であると判明し、下記サイトを参考にしながら 現在改良中なのですが、このサイトで「ログオンユーザのセッションを複製したトークンに設定。」とあるのですが具体的にどのような処理をすればよろしいのでしょうか? C#についてはまだまだ始めたばかりでして、お時間のある方ご教授していただけると幸いです。 よろしくお願いいたします。 //参考サイト
回答: 英語版のStackOverflowに、あなたのご要望の内容と合致するQ&Aがあります。 Start a windows service and launch cmd この中で、おそらくDuplicateTokenEx()が該当の処理でしょう。 類似の内容で、C言語ですが同様の処理に関する記事を提示しておきます。 IPA ISEC セキュア・プログラミング講座 8-2.プロセス間通信とバックドア EternalWindows サービス / サービスの実装 の「サービスからプロセスの生成」のコラム