ブラウザコントロールを使用しています。
マウスが位置する箇所の文字を取りたいのですが出来るでしょうか?
リンクがある先のアドレスは取得できますが、翻訳ソフトなどで
例えば、単なる文字列の上にマウスが位置すると、適当に単語を区切って
ポップアップで表示するものがあるのですが、ポップアップでなくてもいいのですが、文字を取得することが出来るのでしょうか
よろしくお願いします。
結構、難しいですね。
範囲選択した文字を取得するのは、CreateRangeなど情報があるので
しいて、やるやり方としたら
1.マウス位置を取得
2.マウス位置からある程度の文字範囲まで範囲選択
3.範囲選択した文字を取得
でしょうか
> マウスが位置する箇所の文字を取りたいのですが出来るでしょうか?
oleacc.dll を参照設定した上で、ListBox と Timer と WebBrowser を
フォームに貼って、下記のコードを試してみてください。
(カーソルが WebBrowser の上にあるかどうかは判定していません)
'-----------
Option Explicit
Private Declare Function GetCursorPos Lib "user32" _
(ByRef xyScreen As Long) As Long
Private Declare Function AccessibleObjectFromPoint Lib "oleacc" _
(ByVal xScreen As Long, _
ByVal yScreen As Long, _
ByRef ppvObject As Any, _
ByRef pvarChild As Variant) As Long
Private Sub Form_Load()
Timer1.Interval = 250
Timer1.Enabled = True
WebBrowser1.Navigate "http://msdn.microsoft.com/library/ja/jpdnacc/htm/ms_active.asp"
End Sub
Private Sub Timer1_Timer()
Dim xy(1) As Long
GetCursorPos xy(0)
Dim objAcc As IAccessible
Dim child As Variant
AccessibleObjectFromPoint xy(0), xy(1), objAcc, child
List1.Clear
On Error Resume Next
Dim ltwh(3) As Long
objAcc.accLocation ltwh(0), ltwh(1), ltwh(2), ltwh(3), child
List1.AddItem "Pos:" _
& "Left" & CStr(ltwh(0)) & "," _
& "Top" & CStr(ltwh(1)) & "," _
& "Width" & CStr(ltwh(2)) & "," _
& "Height" & CStr(ltwh(3))
List1.AddItem "Name=" & objAcc.accName(child)
List1.AddItem "Value=" & objAcc.accValue(child)
List1.AddItem "Description=" & objAcc.accDescription(child)
End Sub
ご回答有難うございました。
魔界の仮面弁士さん有難うございます。
動作しました。
もう一度プランを練り直してから考えたいと思います。
取り敢えず解決マークを付けさせてもらいます。
再び質問する事があるかもしれませんが、
よろしくお願いします。
すでに解決にマークが付いていますが
「oleacc.dll を参照設定した上で」について教えて下さい。
「参照」で個々に調べましたが私のVB6 SP6では
出て来ませんでした。
oleacc.dll 自体は \Windows32\ フォルダ内にあります。
「参照」のどれにレ点を付ければ良いでしょうか?
すでに解決にマークが付いていますが
「oleacc.dll を参照設定した上で」について教えて下さい。
「参照」で個々に調べましたが私のVB6 SP6では
出て来ませんでした。
oleacc.dll 自体は \Windows32\ フォルダ内にあります。
「参照」のどれにレ点を付ければ良いでしょうか?
一覧に無いなら、[参照]ボタンを押して、DLL を直接指定しましょう。
編集 削除魔界の仮面弁士さん、
何時もありがとうございます。
、[参照]ボタンを押して、DLL を直接指定...をやったことが無くて
知りませんでした。 ありがとうございました。
上記のサンプル、お陰でテスト出来ました。