tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: Webページ内の文字取得につきまして
投稿日: 2017/12/19(Tue) 14:48
投稿者susu
魔界の仮面弁士 様 

返答をして頂きましてありがとうございます。

>普通は 8.1 だと思いますが…本当に 8 ですか?
8.1でした。済みませんでした。8 ⇒8.1に訂正させて頂きます。

>ゆえに今回のケースでは、IE6 と IE11 のみを対象とするのなら、
>Windows XP + IE6、Windows 7/8.1/10 + IE11
>になるはずで、Windows 8 の出番は無さそうですが。
済みません。Webページ内(各ブラウザーに適応)での説明に不備がありました。
不備により、大変お手数をお掛けしました。
IE・Web以外のブラウザー(Google Chrome、Mozilla Firefox、Opera ・・・)でも
範囲選択⇒コピー⇒文字の取得できるように(Ctrl+A)(Ctrl+C)のkeybd_event 関数で行っています。

>定期的にというのは、Timer イベントを用いて、座標位置からの操作を行って、
>IHTMLTxtRange から辿っているということでしょうか。
はい、定期的はTimerで行っています。
IHTMLTxtRangeの使用はしていません。

最初の始めの一回だけ手動でWebページ内をクリックしてその座標位置を同じ位置で繰り返しクリック操作して行っています。
クリックした座標位置は変わりなく一定ですのでマウスを使わない方法で範囲選択できないものかと考えています。

>座標を指定したいのではなく、マウス操作のエミュレーションが目的なら、
>SendInput API を使う手もあります。
間違っていましたら済みません。
SendInput APIを使いますとWebページ内をクリック(関数)しないで仮想的(クリックしたのと同じ)⇒範囲選択できるものと考えてよいのでしょうか。
ブラウザー(IE、Google Chrome、Mozilla Firefox、Opera ・・・)でもWebページ内でも取得できますでしょうか。

IE・WebではSendMessage(ハンドル, WM_GETTEXT, Len(txt), ByVal txt)で文字テキストを取得しています。
              ↓ 訂正 2017/12/21
IE・WebではWebBrowser1.document.body.innerTextで文字テキストを取得しています。

IE・Web以外のブラウザー(Google Chrome、Mozilla Firefox、Opera ・・・)でも文字テキスト取得を考えkeybd_event 関数にしました。

>> webページ内を範囲選択するような方法はありませんでしょうか。
>Web ページ内のどこを範囲選択したいのかにもよりますが、
ページ内の文字テキストに当たる部分を取得します。
>今年7月にやりとりした No16333 との違いが分かりませんでした。
>問題点はどこでしょうか?

>『どこを選択するのか』を定めておく必要があるでしょうね。
前回はどこも選択しないで文字テキストを取得できないものかと思っていましたが、
>(自作ブラウザーまで含めた、あらゆるブラウザーに対応するというのは流石に無理なので)

今回はページ内で取得する文字テキスト部分を一度、手動でクリックして座標位置を取得⇒範囲選択⇒テキスト文字得取します。
後は定期的に手動でクリックした同じ座標位置にマウス⇒移動⇒クリック⇒範囲選択を繰り返しています。
座標位置は決まっていますのでクリックしない方法で範囲選択できますとマウスを使用する必要がなくなります。
必要がなくなりますとソフトの実行に関係なくマウスを使うことができるるようになるかと思い今回の質問とさせてもらいました。

度々、お世話になり感謝申し上げます。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。