« ASP .NET 2.0 | メイン | 連休仕事記録1。 »

.Net Framework 2.0 WebBrowser & Flash

 割と有用な情報だと思います。

 .Net Framework2.0のWebBrowserコントロールを用いてFlashコンテンツを見ると、
クリックが一度しか正常に機能しないという問題があります。
 とりあえずやむなくActiveXの方のコントロールを使用したのですが、.Net2.0のコントロール(System.Windows.Forms.WebBrowser)でも回避方法がありました。

 出所はこちら。
http://www.codeproject.com/csharp/ExtendedWebBrowser.asp?df=100&forumid=285594&exp=0&select=1593837&tid=1593837#xx1593837xx

 要はウィンドウメッセージを誰かが横取りしているみたいなので、それをきちんと知らせてあげようということみたいです。System.Windows.Forms.WebBrowserを継承したクラスでWndProcをオーバライドします。



using System;
using System.Collections.Generic;
using System.Text;

namespace TestBrowser {
public class MyWebBrowser : System.Windows.Forms.WebBrowser {
protected override void WndProc(ref System.Windows.Forms.Message m) {
switch (m.Msg) {
case 0x201: // WM_LMOUSEBUTTON
case 0x204:
case 0x207:
case 0x21:
base.DefWndProc(ref m);
return;
}
base.WndProc(ref m);
}
}
}


このようなクラスを代わりに使用すると、Flashも正常に動いてくれました!

トラックバック

このエントリーのトラックバックURL:
http://www.f-bell.net/cgi-bin/MT/mt-tb.cgi/47

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年03月05日 06:08に投稿されたエントリーのページです。

ひとつ前の投稿は「ASP .NET 2.0」です。

次の投稿は「連休仕事記録1。」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.