サービスアプリケーションからアプリケーションを起動するには?

解決


おねがいします  2006-12-13 11:02:39  No: 24219

自作したサービスアプリケーションから他アプリケーション(画面を持つEXE)を起動し、画面を表示したいと思っています。
他アプリケーションを起動(プロセスを生成)する事は出来るのですが、起動したアプリケーションの画面を表示する事ができません。
(プロセスが生成されている事はタスクマネージャにて確認)

他アプリケーションの起動は
・CreateProcess
・ShellExecute
・WinExec
などのAPIで色々と試してみましたが、どれも画面を表示する事はできませんでした。

なにか良い方法はないでしょうか?
それとも、サービスアプリケーションからの画面表示はどうやっても不可能なのでしょうか?

ご教授の程、よろしくお願い致します。


えーとね  2006-12-18 22:25:56  No: 24220

サービスとユーザーのデスクトップは異なります。

XPまでなら、管理ツールでサービスを開いて、
ログオンタブの「デスクトップとの対話をサービスに許可」で表示できるようです。

正式なやり方は、この辺りでしょうか。CreateProcessAsUser などを使うようです。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=655284&SiteID=7
http://support.microsoft.com/kb/165194/


おねがいします  2006-12-19 20:58:24  No: 24221

ありがとうございます。
大変参考になりました。

一応実装はできましたが、随分と面倒な手続きが必要だったんですね。
それに基本的に推奨されていない上、ユーザがログインしていない場合の問題などあるようなので、根本的に見直したいと思います。

以上


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加