none
IEの制御 RRS feed

  • 質問

  • VC++でIEを起動するプログラムを作成しようとしています。

    IEを起動する際に、target属性・スクロールバー非表示・アドレスバー非表示・ウインドウサイズの指定
    などを行いたいのですが、ShellExecute()では設定する方法がわからず、他の方法を探しています。

    C++よりIEを起動する方法で良い方法はありませんでしょうか?

    2011年10月13日 14:00

回答

  • いっそのこと、WebBrowser コントロールで望みどおりのブラウザー ウィンドウを作ってしまうというのはどうでしょうか。
    • 回答の候補に設定 山本春海 2011年10月31日 7:04
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月17日 1:37
  • comオブジェクトを利用することで実現できそうです。

     //comオブジェクトの作成
    SHDocVw::IWebBrowser2Ptr pIE;
    pIE.CreateInstance(_T("InternetExplorer.Application"));

     // バー関連の表示状態を設定
     pIE->ToolBar = false;
     pIE->AddressBar = false;

     // サイズ設定
     pIE->Width = 800;
     pIE->Height = 600;

    // 画面を表示
     pIE->Visible = true;

    //オブジェクト破棄
    pIE = NULL;

     

    • 編集済み りな 2011年10月18日 12:58
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月18日 12:56
  • 使用するブラウザーは利用者が決めるものですので、IEを強制するのはどうかと思います。利用者がOSに設定した既定のWebブラウザーを起動することをお勧めします。

    target属性はちょっとよくわかりません。何となくわかるような気もしますが。

    スクロールバーの表示・非表示はコンテンツ(スタイルシート)側で指定するものです。それを上書きして非表示にしたいということでしょうか?

    セキュリティ上、アドレスバーの非表示は危険です。ユーザーが正しいコンテンツかどうか判断できなくなるためです。表示することを前提に検討されることをお勧めします。

    今どきはタブブラウザが主流で、単独ウィンドウを前提としたウィンドウサイズ指定は嫌われるのは理解されていますか?

    • 回答の候補に設定 山本春海 2011年11月2日 8:25
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月13日 23:18
  • 何処かのバージョンから、Internet Explorer、Firefox、Opera は、アドレス バーを消去できなくなっています。

    お望みのことは、お望みのような設定をした新しいウィンドウを開くスクリプトが書いてあるページを開く(そして本体はクローズする)ことで、出来ない事はないでしょう。ん~、「指定した URL を開く」というのが難しいかもしれませんが、スクリプトをその場その場で作れば、何とかなるでしょう。ブラウザーも、どれでも行けます。しかし、Opera では、ウィンドウ サイズを変更するスクリプトに限って実行させないようにする設定があります。お望みのことが汎用的に出来るかといえば、難しいと思います。

    イントラネット向けの何かなら、Silverlight アプリケーションを検討されてはいかがでしょうか。


    Jitta@わんくま同盟
    • 回答の候補に設定 山本春海 2011年11月2日 8:25
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月14日 13:04

すべての返信

  • 使用するブラウザーは利用者が決めるものですので、IEを強制するのはどうかと思います。利用者がOSに設定した既定のWebブラウザーを起動することをお勧めします。

    target属性はちょっとよくわかりません。何となくわかるような気もしますが。

    スクロールバーの表示・非表示はコンテンツ(スタイルシート)側で指定するものです。それを上書きして非表示にしたいということでしょうか?

    セキュリティ上、アドレスバーの非表示は危険です。ユーザーが正しいコンテンツかどうか判断できなくなるためです。表示することを前提に検討されることをお勧めします。

    今どきはタブブラウザが主流で、単独ウィンドウを前提としたウィンドウサイズ指定は嫌われるのは理解されていますか?

    • 回答の候補に設定 山本春海 2011年11月2日 8:25
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月13日 23:18
  • 何処かのバージョンから、Internet Explorer、Firefox、Opera は、アドレス バーを消去できなくなっています。

    お望みのことは、お望みのような設定をした新しいウィンドウを開くスクリプトが書いてあるページを開く(そして本体はクローズする)ことで、出来ない事はないでしょう。ん~、「指定した URL を開く」というのが難しいかもしれませんが、スクリプトをその場その場で作れば、何とかなるでしょう。ブラウザーも、どれでも行けます。しかし、Opera では、ウィンドウ サイズを変更するスクリプトに限って実行させないようにする設定があります。お望みのことが汎用的に出来るかといえば、難しいと思います。

    イントラネット向けの何かなら、Silverlight アプリケーションを検討されてはいかがでしょうか。


    Jitta@わんくま同盟
    • 回答の候補に設定 山本春海 2011年11月2日 8:25
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月14日 13:04
  • いっそのこと、WebBrowser コントロールで望みどおりのブラウザー ウィンドウを作ってしまうというのはどうでしょうか。
    • 回答の候補に設定 山本春海 2011年10月31日 7:04
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月17日 1:37
  • comオブジェクトを利用することで実現できそうです。

     //comオブジェクトの作成
    SHDocVw::IWebBrowser2Ptr pIE;
    pIE.CreateInstance(_T("InternetExplorer.Application"));

     // バー関連の表示状態を設定
     pIE->ToolBar = false;
     pIE->AddressBar = false;

     // サイズ設定
     pIE->Width = 800;
     pIE->Height = 600;

    // 画面を表示
     pIE->Visible = true;

    //オブジェクト破棄
    pIE = NULL;

     

    • 編集済み りな 2011年10月18日 12:58
    • 回答としてマーク 山本春海 2011年11月7日 8:42
    2011年10月18日 12:56
  • こんにちは、坂本一 さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
    しばらく経ちましたが、その後いかがでしょうか。

    みなさんから参考になるアドバイスをいただいているようでしたので、勝手ながら私のほうで回答としてマークさせていただきました。
    情報くださった皆さん、ありがとうございます。

    いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
    今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、ご協力よろしくお願いいたしますね。

    今後とも、MSDN フォーラムをよろしくお願いいたします。それでは。
                                                                                                       
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2011年11月7日 8:42