トップ回答者
【C#】WebBrowserコントロールFlashPlayer表示動作について

質問
-
WebBrowserコントロールFlashPlayer表示動作についてご質問致します。
開発環境:VS2015
言語:C#
WebBrowserコントロールはIE11として動作するようにregkey.SetValue(process_name, 11000, Microsoft.Win32.RegistryValueKind.DWord);
regkey.SetValue(process_dbg_name, 11000, Microsoft.Win32.RegistryValueKind.DWord);としています。
【ご説明】
某動画サイト、下記URLの動作にて、IE11、WebBrowserコントロールで違いがありました。
http://www.hulu.jp/watch/296945違いは
IE11の場合、表示される動画部分(FlashPlayer)が拡大、縮小できるの対して
WebBrowserコントロールは、拡大、縮小ができない。
というものです。こちらのサイトでは、WebBrowserコントロールでも
動画部分(FlashPlayer)が拡大、縮小ができます。
http://vod.skyperfectv.co.jp/player.php?ARTICLE_ID=34675&EPISODE_ID=152605&VIDEO_ID=617518【ご質問】
Q1.IE11,WebBrowserコントロールは同じレンダリング処理(MSHTML.dll)を行うの認識であっていますでしょうか?
Q2.http://www.hulu.jp/watch/296945で、WebBrowserコントロールは、拡大、縮小ができない事について
プログラム実装で拡大、縮小できるようにしたいですが、可能でしょうか?
可能な場合その方法はどのような事が考えられるでしょうか?
以上、よろしくお願い致します。
回答
-
Browser Emulationの項だけでなくInternet Feature Control Keys全体を調査し適切に設定されているか確認されてはどうでしょうか? 例えばWeb Browser Control Document ZoomはBy default, this feature is enabled for Internet Explorer and disabled for applications hosting the WebBrowser Control.となっていてIEとWebBrowserコントロールとでは動作が異なります。Legacy Input Modelも影響あるか気になりましたがWindows 7でも発生するということでしたら違うのかもしれません。
# Web Browser Control Document Zoomが原因かどうかはわかりません。
あとこれも関係あるかわかりませんが、IEはHigh DPIに対応しDPIを考慮したズームを行いますが、WebBrowserコントロールはアプリケーション依存なため挙動が異なります。Opt-In to High DPI Behavior for Web Browser Controls辺りを確認してください。
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2016年12月14日 2:59
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月20日 7:34
- 回答としてマークされていない 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
- 回答の候補の設定解除 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
すべての返信
-
> Q2.http://www.hulu.jp/watch/296945で、WebBrowserコントロールは、拡大、縮小ができない
「拡大、縮小」とはどういう意味ですか?
画面右下のアイコンをクリックしてのフルスクリーン切り替えという意味なら、自分の環境(Vista SP2 32-bit, .NET 4, IE9)の WebBrowser(レジストリの設定で IE9 相当)で、どちらの URL のサイトでも可能でしたが。
IE と WebBrowser の違いではなくて、何か他に原因がありそうな気がします。
- 編集済み SurferOnWww 2016年12月7日 11:58 誤字訂正、脱字追加
-
SurferOnWww様
ご連絡ありがとうございます。>「拡大、縮小」とはどういう意味ですか?
Ctl+マウスホイール で拡大、縮小するの意となります。私の環境は(Win10 64bit ,.NET4.5.2, IE11)となります。
私の環境でのWebBrowserコントロールでの見え方としては、
一瞬縮小されているのですが、元のサイズに戻る動きをしております。
JavaScriptでサイズが戻されているのでしょうか??また、
MSHTML.dllを使っているRealPlayでも同様の動作(Ctl+マウスホイールの拡大、縮小ができない)となります。因みに
Win7 32bitでも同様となりました。(Ctl+マウスホイールの拡大、縮小ができない)。 -
>>「拡大、縮小」とはどういう意味ですか?
> Ctl+マウスホイール で拡大、縮小するの意となります。それは以下の記事の「ブラウザーごとの拡大縮小方法・設定」セクションの画像にあるようなブラウザ本体の拡大・縮小機能のことですよね?
フラッシュ画面のサイズ変更 flashを拡大縮小表示
http://ameblo.jp/tenasub/entry-12038581041.htmlFlash Player Ver.18 以降は、ブラウザ本体の拡大・縮小に追随して Flash 画面のサイズも変わるようになったということで、自分の環境(IE9 + Flash Player Ver.23.0.0.207)でもそうなることが確認できました。(実は知らなかったです)
しかし、少なくとも自分の環境では、WebBrowser(Windows Forms 用)を Form に貼り付けただけのものには拡大・縮小機能は実装されていません。
WebBrowser で拡大・縮小するには、自力でコードを書いてその機能を実装する必要があるようですが、そのあたり、質問者さんはどのようにされたのでしょうか?
-
ご連絡ありがとうございます。
>それは以下の記事の「ブラウザーごとの拡大縮小方法・設定」セクションの画像にあるようなブラウザ本体の拡大・縮小機能のことですよね?
はい。>しかし、少なくとも自分の環境では、WebBrowser(Windows Forms 用)を Form に貼り付けただけのものには拡大・縮小機能は実装されていません。
なるほど。
私の環境では、Ctl+マウスホイール動作で拡大、縮小ができます。>WebBrowser で拡大・縮小するには、自力でコードを書いてその機能を実装する必要があるようですが、そのあたり、質問者さんはどのようにされたのでしょうか?
自力でコードを書かなくても拡大、縮小できるのですが、一応 この方法や
HtmlDocument doc = webBrowser1.Document;
doc.Body.Style = "zoom:40%;";この方法で
SHDocVw.IWebBrowser2 wb = (SHDocVw.IWebBrowser2)webBrowser1.ActiveXInstance;
SHDocVw.OLECMDID cmdZoom = (SHDocVw.OLECMDID)63;Object pvaIn = rate;// rate;
Object pvaOut = null;
if (webBrowser1.Document != null)
{
wb.ExecWB(cmdZoom, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref pvaIn, ref pvaOut);
}
できる事は確認しております。WebBrowserコントロールではFlashPlayerが22.0.0.192となっていました。
IE11だと23.0.0.207となっています。
Windows10をUpdateしましたら、WebBrowserコントロールでもFlashPlayerが23.0.0.207となりました。
しかし、現象は変わりませんでした。
- 編集済み public_man 2016年12月8日 5:17 再追記の為
-
Browser Emulationの項だけでなくInternet Feature Control Keys全体を調査し適切に設定されているか確認されてはどうでしょうか? 例えばWeb Browser Control Document ZoomはBy default, this feature is enabled for Internet Explorer and disabled for applications hosting the WebBrowser Control.となっていてIEとWebBrowserコントロールとでは動作が異なります。Legacy Input Modelも影響あるか気になりましたがWindows 7でも発生するということでしたら違うのかもしれません。
# Web Browser Control Document Zoomが原因かどうかはわかりません。
あとこれも関係あるかわかりませんが、IEはHigh DPIに対応しDPIを考慮したズームを行いますが、WebBrowserコントロールはアプリケーション依存なため挙動が異なります。Opt-In to High DPI Behavior for Web Browser Controls辺りを確認してください。
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2016年12月14日 2:59
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月20日 7:34
- 回答としてマークされていない 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
- 回答の候補の設定解除 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月22日 1:35
-
> 私の環境では、Ctl+マウスホイール動作で拡大、縮小ができます。
とすると、問題を再現できる環境を持っていない自分はお手上げです。お役に立てずすみませんが、他の方の回等をお待ちください。
と言っておきながら何ですが、一つだけ気になった点を・・・> WebBrowserコントロールではFlashPlayerが22.0.0.192となっていました。
> IE11だと23.0.0.207となっています。違う PC で試しているということはありませんか? 同じ PC なら同じバージョンになると思うのですが・・・ 同じ PC の同じ WebBrowser で、ある URL は拡大・縮小が可能、別の URL は不可ということはなさそうなのでそう思ったのですが、違ったら失礼しました。このレスは忘れてください。
-
>違う PC で試しているということはありませんか?
もしかしたらそうだったかもしれません。。。すいません。
>とすると、問題を再現できる環境を持っていない自分はお手上げです。
>お役に立てずすみませんが、他の方の回等をお待ちください。
とんでもありません。色々とご確認頂き大変ありがとうございます。WebBrowserコントロールでの動作について補足致します。
・拡大はできています。すいません。
・ブラウザ表示
FlashPlayer部は一端縮小されますが、元のサイズに戻される
テキスト、画像は縮小表示されています。
・動作はサイトに依存する。
特定のサイトだけこのような動作となります。