C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: axWebBrowserについて


(過去ログ 58 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■33380 / inTopicNo.1)  axWebBrowserについて
  
□投稿者/ 末永 慎一 (16回)-(2009/02/26(Thu) 17:23:36)
末永 慎一 さんの Web サイト

分類:[C#] 

以前にもお聞きし、別件の仕事をしていて未だ未解決なのですが、
Microsoft Visual C# 2005で、axwWebBrowserを使ったWinアプリを開発しています。

private void axwWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
{
m_URL = e.uRL.ToString(); // URLの代入
textBox1.Text += "URL " + m_URL + "\r\n";
}

private void axwWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
{
mshtml.HTMLDocument l_Document = (mshtml.HTMLDocument)axwbMain.Document; // ドキュメントオブジェクトの取得
this.Text = l_Document.title; // タイトルの表示
textBox1.Text += "Doc " + l_Document.title + "\r\n";
}

上のようにテスト的にアドレスとページタイトルをTextBox1に表示させるようにしました。
開発用のpcでは、正常にアドレスとページタイトルがTextBox1に表示されます。
このWinアプリのSetupを作成し、数台のpcにSetupして試しましたが、axwWebBrowserは自由に
ページが切り替わるのですが、TextBox1には何も表示されません。
NavigateComplete2と、DocumentCompleteイベントが発生していないのではと感じています。

気になることはSetup作成時に、shdocvw.dllそのままビルドすると
-----
'shdocvw.dll' は、リソース ファイル 'C:\WINDOWS\system32\shdocvw.dll' が
Windows システム ファイルの保護下にあるため、除外されるべきです。
-----
というエラーが出るので、shdocvw.dllは除外してビルドしています。
この事が何か影響しているのでしょうか。

ご存知の方みえましたらアドバイスしていただけますでしょうか。
宜しくお願いいたします。

引用返信 編集キー/
■33388 / inTopicNo.2)  Re[1]: axWebBrowserについて
□投稿者/ Azulean (304回)-(2009/02/26(Thu) 23:23:01)
直接の回答ではありません。

> 以前にもお聞きし、別件の仕事をしていて未だ未解決なのですが、
> Microsoft Visual C# 2005で、axwWebBrowserを使ったWinアプリを開発しています。
気になった点として、ActiveXバージョンのWebBrowserを使用しなければならない理由があるのでしょうか?
C# 2005ということは、.NET Framework 2.0ですので、.NETバージョンのWebBrowserがあると思って、疑問に感じました。

> -----
> 'shdocvw.dll' は、リソース ファイル 'C:\WINDOWS\system32\shdocvw.dll' が
> Windows システム ファイルの保護下にあるため、除外されるべきです。
> -----
> というエラーが出るので、shdocvw.dllは除外してビルドしています。
> この事が何か影響しているのでしょうか。
むしろ、除外しないと駄目です。
そのファイルをインストーラに含めて配っちゃうと、ライセンス違反になります。
引用返信 編集キー/
■33445 / inTopicNo.3)  Re[2]: axWebBrowserについて
□投稿者/ 末永 慎一 (17回)-(2009/02/28(Sat) 10:29:03)
末永 慎一 さんの Web サイト
以前はWebBrowserで進めていましたか、ホップアップメニュー等の「新しいウインドウで開く」
時、標準ブラウザで開かせるのではなく、ただいま開発中の簡易ブラウザで開かせたいと考えて
います。これを実現させようとすると、WebBrowserコントロールではNewWindowイベントを使えば
「新しいウインドウで開く」ことをキャンセルすることはできても、新しく開こうとしているアド
レスの取得ができないので、開発中の簡易ブラウザで開かせることができませんでした。
このような理由で、axWebBrowserコントロールを使い、NewWindow3イベントを使い目的は達成しま
したが、今回のトラブルが発生しました。
何かよい方法ありましたらアドバイスしていただけますでしょうか。
宜しくお願いいたします。

引用返信 編集キー/
■33446 / inTopicNo.4)  Re[3]: axWebBrowserについて
□投稿者/ 末永 慎一 (18回)-(2009/02/28(Sat) 11:32:02)
末永 慎一 さんの Web サイト
http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
で、WebBrowser拡張すれば、axWebBrowserを使わなくてもできそうなことは
わかりましたが、コントロールの拡張経験がないため、拡張方法がわかりません。
上のアドレスに書かれています拡張方法わかる方みえましたら、アドバイスして
いただけますでしょうか。
宜しくお願いいたします。

引用返信 編集キー/
■33447 / inTopicNo.5)  Re[4]: axWebBrowserについて
□投稿者/ 倉田 有大 (458回)-(2009/02/28(Sat) 11:57:19)
No33446 (末永 慎一 さん) に返信
> http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
> で、WebBrowser拡張すれば、axWebBrowserを使わなくてもできそうなことは
> わかりましたが、コントロールの拡張経験がないため、拡張方法がわかりません。
> 上のアドレスに書かれています拡張方法わかる方みえましたら、アドバイスして
> いただけますでしょうか。
> 宜しくお願いいたします。

元ソースをみましたが、継承しているだけでは?

> public class ExtendedWebBrowser : System.Windows.Forms.WebBrowser

というか、全部やりかた、そこに書いてくれてませんでしょうか。
引用返信 編集キー/
■33448 / inTopicNo.6)  Re[5]: axWebBrowserについて
□投稿者/ 末永 慎一 (19回)-(2009/02/28(Sat) 12:05:07)
末永 慎一 さんの Web サイト
>> public class ExtendedWebBrowser : System.Windows.Forms.WebBrowser
すみません。見落としていました。
引用返信 編集キー/
■33453 / inTopicNo.7)  Re[4]: axWebBrowserについて
□投稿者/ 末永 慎一 (20回)-(2009/02/28(Sat) 17:49:07)
末永 慎一 さんの Web サイト
> http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
を参考に、ExtendedWebBrowserをコンポーネント化し、フォーム上にExtendedWebBrowser
コンポーネントを貼り付け、BeforeNewWindow、BeforeNavigateが正常に発生することを
確認しました。
しかしながら情けないことにBeforeNewWindowイベント内で、肝心の新しいウインドウで開く
URLの取得方法が色々と試していますが、わかりません。
> http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
をご覧いただいただけで、新しいウインドウで開くURLの取得方法がお解りの方みえましたら
アドバイスしていただけますでしょうか。
引用返信 編集キー/
■33464 / inTopicNo.8)  Re[5]: axWebBrowserについて
□投稿者/ 倉田 有大 (463回)-(2009/02/28(Sat) 23:36:05)
> WebBrowserExtendedNavigatingEventArgs args = new WebBrowserExtendedNavigatingEventArgs(url, null);

ようやく、読み終わった。

public void test(object o , System.EventArgs e)
{
 //ここで取得。
}

コンストラクタぐらいで
BeforNavigate += new System.EventHandler(this, test);

こんなかんじでイベントの追加。thisが新しいクラス

ほんまか?
引用返信 編集キー/
■33465 / inTopicNo.9)  Re[6]: axWebBrowserについて
□投稿者/ Azulean (306回)-(2009/02/28(Sat) 23:59:14)
サンプルを流し読みしたけれども、EventHandler型で引数がEventArgsなeだから困っていると言うことでしょうか?
サンプル中をよく見ると分かりますが、EventArgsで渡ってくるeは実際は派生クラス(WebBrowserExtendedNavigatingEventArgs)のインスタンスです。
as演算子でキャストすれば取り出せるんじゃないでしょうか。


追伸
コードを読むことが前提条件となる、この手の質問は、回答者にはコードを読む、何が問題か推測する、どうしたら解決できるかを考えることが必要となり、負担が増えます。時間に余裕がない回答者は敬遠してしまうかもしれません。
あるいは、私のように一部だけ読んで、不十分かもしれないが書いてみて、質問主に考えてもらうことになります。

回答がつきにくいこと、回答が不十分なことが十分にあり得るといったところをご理解いただければと思います。
引用返信 編集キー/
■33467 / inTopicNo.10)  Re[7]: axWebBrowserについて
□投稿者/ 倉田 有大 (464回)-(2009/03/01(Sun) 00:10:06)
No33465 (Azulean さん) に返信
> サンプルを流し読みしたけれども、EventHandler型で引数がEventArgsなeだから困っていると言うことでしょうか?
> サンプル中をよく見ると分かりますが、EventArgsで渡ってくるeは実際は派生クラス(WebBrowserExtendedNavigatingEventArgs)のインスタンスです。
> as演算子でキャストすれば取り出せるんじゃないでしょうか。


ああ、なるほど、こっちを質問していたのかなー
引用返信 編集キー/
■33531 / inTopicNo.11)  Re[8]: axWebBrowserについて
□投稿者/ 末永 慎一 (21回)-(2009/03/03(Tue) 14:24:54)
末永 慎一 さんの Web サイト
皆さんの意見を参考に修正し、解決することができました。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -