- 締切済み
ターミナルサービスでログオンしているユーザにウィンドウを出す方法
あるサービスプログラムが起動しているターミナルサービスに複数のユーザをログオンさせて、ユーザごとに、そのサービスプログラムからウィンドウを出す方法はありますか?OSはWindowsです。 サービスプログラムではなく、各ユーザセッションごとに1つのプログラム(プロセス)を起動すればいいのですが、このプログラムはメモリを食うため、セッションごとにプロセスを作るとメモリ搭載量を数十GBもつまなければなりません。 このプログラムは、メモリ上のデータをグラフィカルに表示するだけのプログラムです。Win32 API の、CreateWindowEx に セッションIDがついたようなAPIがあればベストのように思うのですが。 もしくは、ログオンしたユーザ側から別のCOMクライアントを使って、サービスプログラム上のハンドルを取得し、そこからウィンドウを表示させる方法でも良いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- YEND77
- ベストアンサー率56% (21/37)
1つ前、勘違いしました。すみません。 今回も的外れかもしれませんが、何かのお役立てれば・・・ こんな構成ではダメですか? 親プログラム・・・サービスにする(メモリをいっぱいくう) 子プログラム・・・親から命令を受け、メモリ上のデータをグラフィカルに 表示するだけのプログラム(ユーザセッションごとに起動する)(軽い)
- YEND77
- ベストアンサー率56% (21/37)
これは参考になりますか↓ http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/776f90ad-faf6-4489-b148-84e540fc050a
補足
ありがとうございます。ですが、メッセージだけでなく、自作プログラムの ウィンドウを表示させたいのですが、方法をご存知でしたらご教授願います。
補足
ご回答ありがとうございます。おっしゃる通りです。ですが、今回、グラフィカルに 描画するプログラムの新規開発は避けなければいけない事情があります。 サービスプログラムにしようとしているプログラムには、グラフィカルな ウィンドウ表示プログラムが実装されています。モノシリックに作って しまったので、コンポーネントに分けることができません。 ですので、このサービスプログラム上から、ユーザセッションに向けて ウィンドウ表示のプログラムを実行する必要があるのです。