

現在VisualStudio2015を使いwindowsサービスを作成中で、あるディレクトリを監視しその配下にPDFファイルが生成された場合にexeファイルを実行させる処理をさせたいと考えています。

しかし、現段階ではサービスを起動させても画面上には何も起きず、  
タスクマネージャー確認したところバックグラウンドでは実行されていました。

原因としては「セッション0の分離」であると判明し、下記サイトを参考にしながら  
現在改良中なのですが、このサイトで「ログオンユーザのセッションを複製したトークンに設定。」とあるのですが具体的にどのような処理をすればよろしいのでしょうか？

C#についてはまだまだ始めたばかりでして、お時間のある方ご教授していただけると幸いです。  
よろしくお願いいたします。

**参考サイト:**  
[WindowsのサービスからGUIを持つプロセスを起動](http://owlsperspective.blogspot.jp/2010/01/start-
gui-process-from-service.html)


CC BY-SA 4.0
2017-11-07T08:06:01.607
39370
2021-07-14T00:11:33.927
2021-07-14T00:11:33.927
3060
25890
question
c# windows windows-services
(セッション0の分離)サービスからexeを実行する方法


英語版のStackOverflowに、あなたのご要望の内容と合致するQ&Aがあります。  
Start a windows service and launch cmd  
<https://stackoverflow.com/questions/4147821/start-a-windows-service-and-
launch-cmd>  
この中で、おそらくDuplicateTokenEx()が該当の処理でしょう。

類似の内容で、C言語ですが同様の処理に関する記事を提示しておきます。

IPA ISEC セキュア・プログラミング講座 8-2.プロセス間通信とバックドア  
<https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b08_02.html>

EternalWindows サービス / サービスの実装 の「サービスからプロセスの生成」のコラム  
<http://eternalwindows.jp/windevelop/service/service05.html>


CC BY-SA 3.0
2017-12-02T15:33:21.630
39985
2017-12-02T15:33:21.630
26370
39370
answer