自作したサービスアプリケーションから他アプリケーション(画面を持つEXE)を起動し、画面を表示したいと思っています。
他アプリケーションを起動(プロセスを生成)する事は出来るのですが、起動したアプリケーションの画面を表示する事ができません。
(プロセスが生成されている事はタスクマネージャにて確認)
他アプリケーションの起動は
・CreateProcess
・ShellExecute
・WinExec
などのAPIで色々と試してみましたが、どれも画面を表示する事はできませんでした。
なにか良い方法はないでしょうか?
それとも、サービスアプリケーションからの画面表示はどうやっても不可能なのでしょうか?
ご教授の程、よろしくお願い致します。
サービスとユーザーのデスクトップは異なります。
XPまでなら、管理ツールでサービスを開いて、
ログオンタブの「デスクトップとの対話をサービスに許可」で表示できるようです。
正式なやり方は、この辺りでしょうか。CreateProcessAsUser などを使うようです。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=655284&SiteID=7
http://support.microsoft.com/kb/165194/
ありがとうございます。
大変参考になりました。
一応実装はできましたが、随分と面倒な手続きが必要だったんですね。
それに基本的に推奨されていない上、ユーザがログインしていない場合の問題などあるようなので、根本的に見直したいと思います。
以上
ツイート | ![]() |