DOBON.NET DOBON.NETプログラミング掲示板過去ログ

外部アプリケーションをMDI子フォームとして起動したい

環境/言語:[wnnxpsp2 .net2003 c#]
分類:[.NET]

外部アプリケーション(Webブラウザ、電卓、メモ帳等)をMDI子ウィンドウとして親ウィンドウ内に起動させたいのですが可能でしょうか?
知っている方がいましたら宜しくお願いいたします。
多分無理。
そんなアプリ見たことないし。

取り込むexeがプラグインやコントロールのように取り込めるようなつくりになっていないとダメでしょう。
COMインターフェイスがあればいけるかも・・・
#外部プログラム扱いじゃないってことね。
2006/05/10(Wed) 11:46:27 編集(投稿者)

> 親ウィンドウ内に起動させたいのですが可能でしょうか?
MDI子ウィンドウではなく、フォーム内にフォームという形でよいなら可能です。
http://dobon.net/vb/dotnet/form/formwithinform.html

SetParent を使うことで、外部アプリをフォーム内に載せる事ができます。
(C# で試した事はありませんけど)
> 外部アプリケーション(Webブラウザ、電卓、メモ帳等)をMDI子ウィンドウとして親ウィンドウ内に起動させたいのですが可能でしょうか?

対象のアプリケーションが OLE オートメーションをサポートしているなど、元から「そういう作り」になっていないと、まず不可能です。
> SetParent を使うことで、外部アプリをフォーム内に載せる事ができます。

某MLで最近投稿したのと同じ内容ですが、SetParent() のヘルプには

--ここから--
SetParent 関数を使うと、ポップアップウィンドウ、オーバーラップウィンドウ、子ウィンドウの親ウィンドウを設定できます。新しい親ウィンドウと子ウィンドウは、同一アプリケーションに属していなければなりません。
--ここまで--

という記載があります。
これはどうでしょう?

http://www.codeproject.com/cs/miscctrl/AppControl.asp
VB6のときにSetParent(だったと思う)でメモ帳や電卓をフォームのクライアント領域に
表示させたことがありましたが、非常にとろかったと思います。
#たぶん再描画とかが頻繁に発生(連鎖?)してるような感じ?
なので見た目できたとしてもウィンドウの関係など細かな考慮をしないと
まともなものができないと思います。

DOBON.NET | プログラミング道 | プログラミング掲示板