none
プログラムから特定のWebページを表示させる処理で RRS feed

  • 質問

  • 【環境】
    WindowsXP SP3
    Visual Studio 2005 SP1
    IE8

    System.Diagnostics.Process.Start("http://www.yahoo.co.jp/")
    上記のコードを実行すると、規定のWebブラウザによって新しいタブが作成され、指定されたページが表示されます。
    この動作を、新しいタブは作成せずに直前に操作したページを上書きするような感じでページ表示させるにはどのようにすればいいのでしょうか。
    できることならWebブラウザを限定したくないのですが、最悪の場合はIE限定でも仕方ないと思っております。

    ご存知の方がおりましたら教えてください。
    よろしくお願いいたします。
    2009年7月1日 8:03

回答

  • IE 限定でもよければ SHDocVw ライブラリを利用してはいかがですか?
    2009年7月1日 12:53
  • > これはCOMオブジェクトでしょうか?

    そのとおりです。

    > 実はアプリケーションの配布にClickOnceをを利用しておりまして、ActiveXコントロールは利用対象外としておりました。

    ClickOnce はぜんぜん知識がありませんので的外れなレスかもしれませんが・・・

    ベースが .NET アプリでも COM を使った場合は ClickOne は利用できないのでしょうか? 「発行」は可能ですが、そうい
    う問題ではないということでしょうか?

    SHDocVw ライブラリがダメということですと、あと考え付くのは WebBrowser ぐらいですけど、これでは目的に適わない
    でしょうね。

    2009年7月2日 13:22
  • まず、OSとしてタブを開くか、などの指定方法に関するサポートはありませんので、Webブラウザごとに指定方法が異なります。
    次にIEについてですが、Process.Start()をした場合などについての振る舞いはユーザが設定できる項目となっています。
    ですので、ユーザの意志に背いて開発者の趣味を押しつけるのはどうかと思います。

    インターネットオプションのタブの設定のところ。デフォルトでは最後に使われたウィンドウの新しいタブですが、その他に新しいウィンドウと、あとご希望の最後に使われたタブとの3択です。
    2009年7月2日 13:49
  • > ただいまWebアプリケーションを開発中なのですが、その要件のなかに、ローカルマシン上の
    > 画像ファイル操作と加工を行うといったものがありまして・・・

    いまいちやりたいことが理解できていませんが、Windows アプリと Web アプリの両方を開発して
    いて、Windows アプリで画像ファイルの操作と加工を行ったうえで Web にアップロードし、Web
    アプリでそれを受けて表示するということなのでしょうか?

    とすると、先に提案しましたが、IE そのものを使って表示したいなら COM ですが SHDocVw, MSHTML
    ライブラリ、.NET のライブラリに限りたいなら WebBrowser, HtmlDocument クラスを使えば実現
    できそうですが、それは検討されましたか?

    2009年7月9日 13:36

すべての返信

  • IE 限定でもよければ SHDocVw ライブラリを利用してはいかがですか?
    2009年7月1日 12:53
  • SurferOnWww さま

    SHDocVw ライブラリについて簡単ではありますが調べてみました。
    これはCOMオブジェクトでしょうか?
    実はアプリケーションの配布にClickOnceをを利用しておりまして、ActiveXコントロールは利用対象外としておりました。
    説明不足で申し訳ありません。
    単純にIEのexeに渡すパラメータで解決できればと思っておりましたが、そう簡単ではないようですね…
    2009年7月2日 1:08
  • > これはCOMオブジェクトでしょうか?

    そのとおりです。

    > 実はアプリケーションの配布にClickOnceをを利用しておりまして、ActiveXコントロールは利用対象外としておりました。

    ClickOnce はぜんぜん知識がありませんので的外れなレスかもしれませんが・・・

    ベースが .NET アプリでも COM を使った場合は ClickOne は利用できないのでしょうか? 「発行」は可能ですが、そうい
    う問題ではないということでしょうか?

    SHDocVw ライブラリがダメということですと、あと考え付くのは WebBrowser ぐらいですけど、これでは目的に適わない
    でしょうね。

    2009年7月2日 13:22
  • まず、OSとしてタブを開くか、などの指定方法に関するサポートはありませんので、Webブラウザごとに指定方法が異なります。
    次にIEについてですが、Process.Start()をした場合などについての振る舞いはユーザが設定できる項目となっています。
    ですので、ユーザの意志に背いて開発者の趣味を押しつけるのはどうかと思います。

    インターネットオプションのタブの設定のところ。デフォルトでは最後に使われたウィンドウの新しいタブですが、その他に新しいウィンドウと、あとご希望の最後に使われたタブとの3択です。
    2009年7月2日 13:49
  • SurferOnWww さま
    佐祐理 さま


    いろいろバタバタしておりまして返信が遅くなってしまいました。
    お礼が遅くなってしまい、申し訳ありませんでした。


    ただいまWebアプリケーションを開発中なのですが、その要件のなかに、ローカルマシン上の画像ファイル操作と加工を行うといったものがありまして、1処理単位で扱うローカルファイルも5枚程度なのでWebでの実現は断念した経緯があります。
    その部分をClickOnceのクライアントアプリを使用し、起動時のURLパラメータで連携を行おうと考えております。

    そこで問題になったのが、クライアントアプリ終了のタイミングで直前のWebブラウザ画面をリフレッシュ表示できない件です。
    別ウィンドウでWebブラウザが開くと、新旧両方の画面が存在してしまい、ユーザが混乱してしまいます。
    かといって、いろいろな絡みがあって、どうしても直前のWebブラウザ画面を残した状態でクライアントアプリに処理を引き継がなければなりません。

    画面遷移からもう一度検討しなおしたほうがいいかもしれませんね...

    2009年7月9日 8:22
  • > ただいまWebアプリケーションを開発中なのですが、その要件のなかに、ローカルマシン上の
    > 画像ファイル操作と加工を行うといったものがありまして・・・

    いまいちやりたいことが理解できていませんが、Windows アプリと Web アプリの両方を開発して
    いて、Windows アプリで画像ファイルの操作と加工を行ったうえで Web にアップロードし、Web
    アプリでそれを受けて表示するということなのでしょうか?

    とすると、先に提案しましたが、IE そのものを使って表示したいなら COM ですが SHDocVw, MSHTML
    ライブラリ、.NET のライブラリに限りたいなら WebBrowser, HtmlDocument クラスを使えば実現
    できそうですが、それは検討されましたか?

    2009年7月9日 13:36
  • SurferOnWww さま


    >いまいちやりたいことが理解できていませんが、Windows アプリと Web アプリの両方を開発して
    >いて、Windows アプリで画像ファイルの操作と加工を行ったうえで Web にアップロードし、Web
    >アプリでそれを受けて表示するということなのでしょうか?

    おおよそ、そのような感じの流れです。
    基本、Webアプリの使用がメインとなり、画像操作の部分がWindowsアプリとなります。
    WebアプリとWindowsアプリの連携に、Webアドレス指定で起動ができるClickOnceを利用することにしました。


    >とすると、先に提案しましたが、IE そのものを使って表示したいなら COM ですが SHDocVw, MSHTML
    >ライブラリ、.NET のライブラリに限りたいなら WebBrowser, HtmlDocument クラスを使えば実現
    >できそうですが、それは検討されましたか?

    基本的な運用はWebブラウザを使用するので、IEを操作できる SHDocVw, MSHTML ライブラリが対象になりますね。
    Windowsアプリの配布もClickOnceで行うので、当初ActiveXコントロールは利用対象外としておりましたが再検討してみます。
    いろいろと教えていただきありがとうございました。

    2009年7月10日 1:27
  • こんにちは。フォーラムオペレーターの高橋春樹です。

    SurferOnWwwさん、佐祐理さん、いつもお世話になっております。

    ひろひろひろさん、初めまして。
    MSDNフォーラムのご利用ありがとうございます。

    ActiveXコントロールの利用を再検討されるとの事ですが、その後如何でしょうか?
    今回、SurferOnWwwさんと佐祐理さんからの投稿が、有用な情報であったと思いましたので、
    勝手ながら、皆様からの投稿に回答マークを付けさせてもらいました。
    不適切と思いましたら、回答マークを削除することも可能です。
    今後ともMSDNフォーラムを宜しくお願いします。


    マイクロソフト株式会社 フォーラム オペレータ 高橋春樹
    2009年8月10日 4:11