• ベストアンサー

C#のwebbrowserで何をしているか取得

いつもありがとうございます。 C#のwebbrowser上で、ユーザーがどういった操作をしたかを取得する方法はあるのでしょうか? 例えば、ヤフーのトップページから 検索フォームにキーワードを入れて、 検索ボタンをクリックした場合に ・検索フォーム(name="p")に●●●のキーワードを入れた ・ボタン(id="srchbtn")をクリックした などという情報を取得したいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.2

回答No.1です。 mshtml は webbrowser コントロールで取得した HTML (DOM)にアクセスするためのライブラリです。 わかり易いサンプルがあったので、以下を見てみてください。 http://support.microsoft.com/kb/312777/ja この掲示板の記事も参考になるかと思います。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47928&forum=7

macus
質問者

お礼

追加質問への回答ありがとうございます。 大変助かりました。ありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#212058
noname#212058
回答No.1

できないことはありませんが、かなり難しいです。 ブラウザのDHTML(javascript)の知識が必須です。 (WEB開発などで javascript を使ったことがある場合は 良いですが、そうでない場合は前提知識としてそっちの 学習も必要です) ボタンクリックについては以下にサンプルがあります。 http://social.msdn.microsoft.com/Forums/en-US/31bf4789-f8a8-443e-b951-5af6982c28a5/handling-onclick-event-of-webbrowser-document?forum=wpf 『検索フォーム(name="p")に●●●のキーワードを入れた』 ほうは上記のボタンクリックの方式を応用して onChange イベントあたりで処理することになると思います。

macus
質問者

お礼

ありがとうございます。 javascriptは多分大丈夫です。 でも参考サイトの内容は英語ってのもあってよくわからないです。。。 ここら辺を色々調べていると、mshtmlというキーワードをよく見るのですが、 mshtmlの事が詳しく描いてあるサイトが見つからなくて理解できていません。 何か参考サイトとかありますでしょうか? お願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C# webBrowser html

    Visual Studio Express 2013 C#の初心者です。 webBrowserで開いたページ内のボタンを自動でクリックしたいんですが、html内の(ほにゃらら)がアクセスするたび変わるので HtmlElementCollection{ここがわからんbuttons?} = webBrowser1.Document.GetElementsByTagName("会員の方はこちらよりログインしてください"); {ここがわからんbuttans?}[ ? ].InvokeMember("click"); なんてやってみたけどダメですね、どうかよろしくお願いします。 クリックしたいところのhtmlは以下です。 <li class="header-forNew-login"> <a title="会員の方はこちらよりログインしてください" onclick="_gaq.push(['_trackEvent', 'top', 'no- login', 'btn-login']);" href="https://www.ほにゃらら"> <span class="icon-user"></span><strong>ログイン</strong> </a> </li> ちなみにhtmlも初心者です

  • WebbrowserよりHTMLのValue値を取得したい

    こんばんは Webbrowserに表示されているページから <input type="hidden" name="regist_id" value="123456789"> というう箇所のValueの値123456789を取得しLabel1.Textに表示させたいのですが、 WebBrowser1.Document.getElementsByName("regist_id").Item(0).Value = Label1.Text としてみたのですが無理でした。 label1は空白になるだけでした。 どこが間違っているのでしょうか? VB2005で製作しております。

  • WebBrowser内のフォームをsubmitする(VB2008)

    VB2008でWebBrowserコントロール内のsubmitボタンを以下のコードでクリックしようとしているのですが、 WebBrowser1.Document.Forms("フォームの名前").InvokeMember("submit") NullReferenceExceptionはハンドルされませんでした。 オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出ます。 ボタンがフォームの中ではなく、tableの中に配置されているようで、idも指定されておらず、nameとvalueだけ指定されているのですが何か方法はないでしょうか。 どなたかお願いします。

  • URL名を取得するには?

    アクセスのフォームに Web Browserを設置して、 Me.WebBrowser1.Navigate "http://www.yahoo.co.jp/" としました。 その時、サイト名(名前)を、タブに表示したいのですが、まず名前の取得ができません。 http://www.yahoo.co.jp/の名前は「Yahoo! JAPAN」です。 Sub a() Debug.Print Form_フォーム1.WebBrowser1.Navigate.Name Debug.Print Form_フォーム1.WebBrowser1.url.Name End Sub どちらもエラーになってしまいます。 ご教授よろしくお願いします。

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • c# webBrowser 内のpdfファイルについて

    Visual Studio 2005 C# + iTextSharp で、Windowsフォームを開発しています。 Form1 内の webBrowser 上に、複数ページが存在するpdfファイルを表示しています。 今、pdfファイルの何ページ目がwebBrowserに表示されているかを取得する方法はありますのでしょうか?

  • VB2005のWebbrowserについて

    WebbrowserでYahoo検索した時に、例えば緑色で表示されてる部分の文字だけを(www.yahoo.co.jp)取得したいのですがこの部分だけを取得する方法はあるのでしょうか? よろしくお願いします。

  • VB2005のWebbrowserについて

    VB2005のWebbrowserでYahoo検索した時に表示されるリンクテキストの文字を取得したいのです。 WebbrowserでYahoo検索した時に、検索で一致したサイトのサイト名(例:「アルバイト[バイト]から社員の求人まで、仕事探しはタウンワーク」「仕事 - Wikipedia」等)取得したいのですがこの部分だけを取得する方法はあるのでしょうか? 検索ヒットが10件あれば10件すべて取得したいです。 よろしくお願いします。

  • C# 文字列型のhtmlから要素を取得したい

    textBox1.Text = "<li>aaaaa</li><a id="link" href="http://yahoo.co.jp" >bbbbb</a><p>ccccc</p>"; WebBrowser webbrowser = new WebBrowser(); webbrowser.DocumentText = textBox1.Text; HtmlElementCollection elements = webbrowser.Document.GetElementsByTagName("a"); foreach (HtmlElement element in elements){ if (element.GetAttribute("id") == "link"){ str = element.GetAttribute("href"); } } MessageBox.Show(str); このようにソースを書いたのですが、http://yahoo.co.jpをポプアップで表示することができません。 webBrowserに表示しているサイトのHTMLに対して行うときはほとんど同じ方法で取得ができるので、文字列に原因があるだろうということはわかるのですが、何がいけないかがイマイチわかりません。 ステップ実行したところ、foreachの中にはいらないようです。なぜ入らないのでしょうか?どうすればはいるのでしょうか? よろしくおねがいします。

  • VB6:WebBrowserでフォームの画像ボタンを押す

    VB6です。 WebBrowserを使って、ID,passを入れて、Login(submit)を押す。というのは良くありますが、 WebBrowser1.Document.login.submit のように 最近はボタンではなく画像であることが多くなってきました。 たとえばYahooのログイン画面。 https://login.yahoo.co.jp/config/login 私が良く使う本の検索画面 http://www.kosho.or.jp/servlet/bookselect.Kihon これらは、ボタンではなく画像をボタンにしています。 このボタンを押す方法はありませんでしょうか? よろしくお願いいたします。