none
VB.NETで作成したActiveXコントロール(もどき)でMDIを実現する方法は? RRS feed

  • 質問

  • どなかたMDIについてご教授願います。

     

    VB.NETで以下のような処理を実現するため、試行錯誤しています。

     

    ①親はIE

    ②IEで表示された画面でボタンを押しonClick等でイベントを発生させ

     ActiveXコントロール(もどき)を生成

     (もどきとはVB.NETで作成たアセンブリをCOMの相互運用機能に登録)

    ③ActiveX内ではサーバよりバイナリファイルをダウンロードし、Temp領域に保存

    ④保存したファイルをテキストやPDFとして別プロセスを起動して表示

    ⑤直前までアクティブになっていたIEのプロセスを取得

    ⑥起動したプロセスをMDIの子プロセスとして動作させたい

     つまり、親がIEで子がActiveXで起動したプロセス(テキストやPDF)

     子が終了しないと親の操作不可

     

    こんな感じです。

    ⑤のIEプロセス取得まで実現しているのですが、

    肝心のMDIの実現方法と、直前までアクティブだったIEプロセスの取得方法

    がわかりません。

     

    Formを使用したMDI作成の説明を書いたサイトはあったのですが

    Formでは作成していない為、どう実現したら良いかわかりません

    そもそも、上記のようなことは可能なのでしょうか?

     

     

    実行環境:WindowsXP SP2

           Windows2003 Server SP1

              IE6限定

    開発環境: Visual Studio .NET 2003

     

    2007年12月26日 10:12

すべての返信

  •  ポチョムキング さんからの引用

    ⑥起動したプロセスをMDIの子プロセスとして動作させたい

     つまり、親がIEで子がActiveXで起動したプロセス(テキストやPDF)

     子が終了しないと親の操作不可

    MDIでは、「子が終了しないと親の操作不可」なんてこと、できませんが?

     

    ポチョムキングさんがされたいことを、私ならば、「モーダルダイアログのようなものを実現したい」と、表現しますが。

    2007年12月26日 12:53
  • ご指摘ありがとうございます。

     

    まさにそのとおり

    「モーダルダイアログのようなものを実現したい」です。

     

    2007年12月27日 2:05
  • だったら、その「ActiveXコントロール(もどき)」を貼りつけたダイアログを作って、それをモーダルで表示してやればよいのでは?

    # 具体的な方法は知りません。WEBは、門外漢でして。

    2007年12月28日 11:43
  • そのコントロールを張ったページ自体をモーダルダイアログで表示させればいいのでは?

     

    たとえば リンクのonclickイベントに対してクライアントスクリプトで

     

    <a href="hoge.htm" onclick="return myOpen('hoge.htm' );">ほげほげ</a>
    コード ブロック

    function myOpen(sURL )

    {

    window.showModalDialog(sURL);

    return false;

    }

     

     

    といった具合でモーダル表示が可能ですよ
    2007年12月28日 18:02
  • Tom Yama さん redfox63さん、返信ありがとうございます

     

    モーダルですか・・・

    ActiveX(もどき)から別プロセスで起動したアプリをモーダルに

    表示させる方法が想像できませんが、ちょっと試してみます。

     

    2007年12月29日 4:01
  • ちゃんと読んでませんでした。別プロセスなのね。

     

    ダイアログにWEBブラウザコントロールを貼って、OLEを使ってその中に、テキストやPDFを表示すればいけるかな?

    思いつく手としては、これくらいです。

    具体的な方法については、自分で調べてください。すみません。

    2007年12月29日 4:39