- PR -

WebBrowserで選択文字列の取得

1
投稿者投稿内容
ふろんてぃあ
会議室デビュー日: 2004/07/15
投稿数: 7
投稿日時: 2008-03-03 12:36
ふろんていあです。

.NET2005にて開発中
os:xp


現在、WebBrowserで表示されているターゲットとしたいエリア(文字列)を自動で選択するまではできたのですが、それをクリップボード等へ(変数にSETでもOK)コピーしたいのですがうまくいきません。

後、一息のところでいきずまっています。
どなたか、お分かりの方よろしくアドバイスお願いいたします。




Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2008-03-03 12:50
WebBrowser 選択 文字列 取得 - Google 検索
ふろんてぃあ
会議室デビュー日: 2004/07/15
投稿数: 7
投稿日時: 2008-03-03 13:22
早速のご連絡ありがとうございました。


WebBrowser 選択 文字列 取得をキーワードに検索をかけ色々試してみたのですが
うまくいきませんでした。

例文のコードをコピペで色々試してみたのですが
例えば
If Me.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
Me.WebBrowser1.Focus()
SendKeys.Send("^c")
End If
System.Threading.Thread.Sleep(100)
Dim s As String = String.Empty
If Clipboard.ContainsText Then
s = Clipboard.GetText
End If
では無限ループ状態でかたまってします

また、
Public Class Form1

Dim WithEvents WebBrowser As New WebBrowser
Dim WithEvents Button As New Button
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser.Dock = DockStyle.Fill
Me.Button.Text = "文字列を選択してから押す"
Me.Button.AutoSize = True
※ Me.Controls.Add(Me.Button)
※ Me.Controls.Add(Me.WebBrowser)
Me.WebBrowser.GoHome()
End Sub

Private Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button.Click
If Me.WebBrowser.ReadyState = WebBrowserReadyState.Complete Then
Me.WebBrowser.Focus()
SendKeys.Send("^c")
End If
Application.DoEvents()
Dim s As String = String.Empty
If Clipboard.ContainsText Then
s = Clipboard.GetText
End If
MessageBox.Show(s)
End Sub
End Class

これでも ※行エラー

エラー 3 'Controls' は 'WindowsApplication1.Form1.Form1' のメンバではありません。 C:\Documents and Settings\huke\My Documents\Visual Studio 2005\Projects\選択文字のコピー\選択文字のコピー\Form1.vb 25 13 選択文字のコピー

など色々試みてはいるのですがうまくいきません。
引き続きよろしくご教授お願いします。

ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-03-04 01:01
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200601/06010007.txt

コレ、パスカルだけど。

ここに書いてある内容から適当に摘んで、

createTextRange => TextRange => ExecCommand

コード:

Public Class Form1

Private WithEvents btn As New Button
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

btn.Text = "OK"
btn.Dock = DockStyle.Top

Me.Controls.Add(btn)

WebBrowser1.Navigate("http://www.google.com/")

End Sub

Private Sub btn_Click(ByVal o As Object, ByVal e As EventArgs) Handles btn.Click

Dim body As HtmlElement = WebBrowser1.Document.Body


WebBrowser1.Document.ExecCommand("copy", False, Nothing)


Dim selectedText As String = Clipboard.GetText()

MsgBox(selectedText)


End Sub

End Class




与えられたヒントでやってみてわからないからってたかだか30分程度で音を
あげちゃまずいでしょう。

コメントの多い人の一言にはそれなりに意味があるはず、もしかしたら、君の
提示コードを見てこいつならこれくらいのヒントで十分だろう、という期待も
あるかもしれないのだから。


[ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2008-03-04 01:06 ]
ふろんてぃあ
会議室デビュー日: 2004/07/15
投稿数: 7
投稿日時: 2008-03-04 11:15
びあちゃん様

ありがとうございました。
サンプルコード一発で成功しました。!!

ご指摘の通り、ここに投稿するに当っては検索であらゆるサンプルをテストしてみましたがことごとくエラーでした。
.NETでコーディングの経験はあるのですがWebBrowserを使っての操作は初めてで書籍を読み漁ってもこれに関する解説は皆目みあたらず、私にとっては万事に窮した思いでご指南を仰いだ次第です。
始めに、事の顛末を書いておけばよかったのにと反省しております。
WebBrowser1.Document.ExecCommand("copy", False, Nothing)
ここのコードが未だによく理解できませんがこれから良く調べてみます。

お蔭様でやっと次に進むことが、できました。
厚く御礼申し上げ、解決とさせていただきます。


1

スキルアップ/キャリアアップ(JOB@IT)