none
64bit OS(Vista 64bit)で32bit版ブラウザを使用したい場合のコードの書き方について RRS feed

  • 質問

  • VB初心者のきゅうり草と申します。

    現在VB.NETでWindowsフォームを作成し、その中でWebBrowser.navigateを使用しているのですが
    64bit OS(Vista 64bit)でアプリを起動させると、64bit版のブラウザが動作してしまいます。

    64bitのブラウザだとFlashが表示されないため、これを32bitブラウザで起動させるような
    コードはありますでしょうか。

    現在使用しているコードは以下の通りです。
     WebBrowser1.Navigate("http://****.**.**")

    初歩的な質問で大変恐縮ですがよろしくお願い致します。

    2009年5月17日 3:33

回答

  • COM の制限上、不可能ですね。
    アプリケーションごと 32bit で動かしてください。
    プロジェクトのプロパティでプラットフォームターゲットを x86 にすれば WOW64 で動かせますが、Express Edition だと指定できなかったんでしたっけ? 手動で直接 .vbproj ファイルの PropertyGroup に Platform 要素を追加してやればいけるのかな?
    2009年5月17日 3:56
  • 64bitのブラウザだとFlashが表示されないため、これを32bitブラウザで起動させるような
    コードはありますでしょうか。
    コードでは無理です。
    プロジェクトの設定等で、対象とするプラットフォームを変更し、アプリケーションを32bitとしてビルドする必要があります。

    手元のVisual Basic 2008 Express Edition with Service Pack 1ではプラットフォームをGUI上から変更する方法を見つけられませんでした。
    Hongliangさんが記載されているように無理矢理変えるといった手段が使えるかどうかだと思われます。

    Visual Studio 2008 Professional Editionでは、ビルドメニューから構成マネージャを開き、プラットフォームのコンボボックスから新規作成を選び、x86を追加します。
    (既にx86があるなら、それを選択する形でも問題ありません)


    なお、x86向け、32bitとしてアプリケーションをビルドすることになるため、これまでに書いたコードがそのままでは使えない部分があるかもしれません。
    また、他の仕様等の要求が64bitでないと実現できないのであれば、32bitにするという選択肢(=Flashを動かしたいという要求)は両立できません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年5月17日 6:16
    モデレータ

すべての返信

  • COM の制限上、不可能ですね。
    アプリケーションごと 32bit で動かしてください。
    プロジェクトのプロパティでプラットフォームターゲットを x86 にすれば WOW64 で動かせますが、Express Edition だと指定できなかったんでしたっけ? 手動で直接 .vbproj ファイルの PropertyGroup に Platform 要素を追加してやればいけるのかな?
    2009年5月17日 3:56
  • 64bitのブラウザだとFlashが表示されないため、これを32bitブラウザで起動させるような
    コードはありますでしょうか。
    コードでは無理です。
    プロジェクトの設定等で、対象とするプラットフォームを変更し、アプリケーションを32bitとしてビルドする必要があります。

    手元のVisual Basic 2008 Express Edition with Service Pack 1ではプラットフォームをGUI上から変更する方法を見つけられませんでした。
    Hongliangさんが記載されているように無理矢理変えるといった手段が使えるかどうかだと思われます。

    Visual Studio 2008 Professional Editionでは、ビルドメニューから構成マネージャを開き、プラットフォームのコンボボックスから新規作成を選び、x86を追加します。
    (既にx86があるなら、それを選択する形でも問題ありません)


    なお、x86向け、32bitとしてアプリケーションをビルドすることになるため、これまでに書いたコードがそのままでは使えない部分があるかもしれません。
    また、他の仕様等の要求が64bitでないと実現できないのであれば、32bitにするという選択肢(=Flashを動かしたいという要求)は両立できません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年5月17日 6:16
    モデレータ
  • きゅうり草です。

    Hongliang様、早々のご回答ありがとうございました!
    指示通り設定してみたところ、問題なく動作しました!

    それでは取り急ぎ以上お礼のみにて失礼致します。

    2009年5月17日 6:29
  • きゅうり草です。

    Azulean様、とても分かりやすい解説誠にありがとうございました!
    お陰さまで問題を解決することができました。^^

    Visual Studio 2008 Professional Editionの「構成マネージャ」ですが
    設定によっては構成マネージャーがビルドメニューに載っていないことが
    あるようです。

    【構成マネージャの表示方法】
    ツールメニュー
       ↓
    オプション
       ↓
    「プロジェクトおよびソリューション」の全般
       ↓
    「ビルド構成の詳細を表示」をチェック

    それでは失礼致します。
    2009年5月17日 6:35