問題タブ [bho]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - アクセス方法
I have written a browser helper object to get the text between the tags and use it for data mining purpose. I tried using it on igoogle
(basically to test its capability on gadgets) and it failed in some of the cases where an <iframe>
is present with some external source.
I can get the <div>
and its child <iframe>
but fail to get the body.
I get the frame collection from this API HRESULT IHTMLDocument2::get_frames(IHTMLFramesCollection2 **p);
The problem can be re-created in igoogle and firefox using the loan calculator
gadget. You will also need the fire bug extension to debug the page. For reference purpose I am pasting the sample here...
The link is not complete as I have replaced some part of the src
with ...
. Now as you can see that there is no body for the although it is getting rendered in the browser..
As per this post ( http://stackoverflow.com/questions/957133/does-body-onload-wait-for-iframes
) the onload event on body does not wait for frames to complete.
So I can conclude that I have to use some sort onload
listener for the <iframe>
... but I am not sure how ...
Kindly suggest a way/snippet to retrieve the body of the <iframe>
using ATL/COM APIs...
** Update **
I am using the following code to get the <iframes>
. Although i get the iframe collection but when i try to get their body it fails... may be because they are not loaded by that time ?!
And,
#xA;Any suggestions, how to get the iframe body .... by the way I am handling this in OnDocumentComplete
event...
Thanks,
c++ - DHTML/AJAX ページの場合、ブラウザ ヘルパー オブジェクト (BHO) を使用して完全な HTML 本文を取得する方法は?
'onDocumentComplete'
のイベントから取得した HTML を分析する BHO を作成しています'DWebBrowserEvents2'
。DHTML/AJAX
HTMLハンドルがすぐに配信されるページがない限り、現在は正常に動作します。
サンプルとして、に使ってみました'http://www.google.com'
。イベントから'onDocumentComplete'
ほとんどのページを取得できますが、一番上のリンク/アンカーでは'href'
、地図、ビデオ、orkut などは利用できません (通常は ですjavascript:void(0)
)。
フレーム/ボディがロードされたときだけでなく、ページが完全にロードされたときにそれをキャプチャする方法はありますか?
ありがとう、
アップデート
MSHTML API に問題があるようです。MSDN フォーラムといくつかの応答に同じ質問を投稿しました。また、私の問題と調査結果を詳しく説明しました....
誰かがこれを解決する方法を見つけた場合は、共有してください...
ありがとう、
windows - c++ Windows レジストリを適切に読み書きする
だから私はしばらくこれにこだわっていました...うまくいくと思っていましたが、時々壊れてしまい、正確な理由がわかりません...
これが問題かどうかはわかりませんが、Browser Helper Object (BHO) 内にこれを書いています... 64 ビット OS と 32 ビット OS のどちらで実行されているかに関係なく、IE は常に 32 ビット プロセスですか?
だから私はレジストリから読み取ることができるようにしたいのですが、これはクレートする必要があるかもしれません...
私はこの機能を使用します:
次に、これでキーが存在するかどうかを確認します。
成功した場合は、null で終了していることを確認します。
それ以外の場合は、wininet lib を使用して情報をサーバーに送信し、新しい ext_id を割り当てて、この値をレジストリに書き込みます... この関数を使用します。
奇妙な理由で、渡していたものの半分しか書いていなかったので、安全のために_tcslen(ext_id)を2倍にして1を追加しましたか?私がオンラインで見つけた例のほとんどは、その長さを 2 倍したものではありません。このように機能するので、そのままにしておきました...
これはすべて適切に機能しているようです:
そして、それは私のdev_machine: Windows 7 64bitで機能しました。
32ビットのWindows 7でテストしました...
この問題は Windows XP IE 6 で発生し、機能しませんでしたが、もう一度 RegQueryValueEx 関数を呼び出すと正しい値が返されるようで、次の要求で気付きました...
また、サーバーに送信する他の文字列によっては、動作が異なることに気付きました。これは、私が C++ に比較的慣れていないためである可能性があります (実際には数週間しか経っていません)。本当に悪いことをしている。
状況に応じてレジストリ キーを開くためのフラグで KEY_WOW64_32KEY または KEY_WOW64_64KEY を使用する必要があることを msdn で読みましたが、これは私の状況では本当に必要ですか (ブラウザー 6.0 から 8.0 の BHO)。
c# - 標準のC#アプリに埋め込まれたWebBrowserコントロールでBHOを有効にしたい
Webブラウザコントロールがドラッグされた標準のwinformsC#アプリがあります。また、IE7またはIE8内で実行される場合にCOMを介して通常対話するC++BHOもあります。
WebブラウザコントロールにBHOをロードするように指示する方法がわかりません。BHOはGUIなどを表示せず、IEから使用されたときにhttpトラフィックをリッスンするだけです。
どんな助けでも大歓迎です。ありがとう。
.net - 保護モードでIE拡張機能内からWindowsイベントログに書き込む-アクセスが拒否されると失敗する
保護モードがオンになっているWindows7のInternetExplorer内で実行されているBHOで、Windowsイベントログに書き込もうとしています。すでに存在するソースに書き込んでいますが、それはアプリケーションログにあるので、なぜこれがブロックされるのかわかりません。ただし、への呼び出しSystem.Diagnostics.EventLog.WriteEntry("MySource", "Some message")
は、InvalidOperationExceptionで失敗し、「ソース'XXX'のログを開くことができません。書き込みアクセス権がない可能性があります。」というメッセージが表示されます。スタックトレースは、にあることを示していますEventLog.OpenForWrite(String currentMachineName)
。
プロテクトモードをオフにすると、正常に機能します。
これがプロテクトモード内で許可されない理由、およびイベントログへの書き込みが許可されているものとしてBHOを登録する方法、またはその他の方法で機能させる方法はありますか?
この投稿によると、OpenForWrite()を呼び出すとUnsafeNativeMethods.RegisterEventSource(this.machineName, this.sourceName);
、が呼び出されますが、そのドキュメントではそれ以上のことはできませんでした。
.net2.0を使用しています
ありがとう。
ここにクロスポスト:msdn_microsoft_ieextensiondevelopment
internet-explorer - IE コンテキスト メニューの並べ替え
BHO と C# を使用して Internet Explorer アドオンを開発しました。いくつかのコンテキスト メニュー アクション (アドオンを使用している IE 用) も追加しました。HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ の下のレジストリ エントリを使用して、コンテキスト メニュー エントリを追加しました。エントリを注文する方法はありますか? または区切りを追加しますか?またはネストされたメニュー?現時点では、すべてアルファベット順に並べられています。どうもありがとう!
c# - IE プラグイン Browser Helper Object (BHO) を使用して Frame または Iframe 内のデータにアクセスする
電話システムに接続し、クリックするとその番号をダイヤルするリンクに電話番号をラップする IE プラグインを作成しています。DocumentComplete イベントを使用してこれを達成しています。
問題は、frame および iframe 要素内の要素にアクセスできないように見えることです。
質問: ブラウザ ヘルパー オブジェクトを使用して、IE の frame および iframe 要素内のデータをどのように操作しますか?
visual-c++ - DownloadCompleteイベントはBHOによって呼び出されません
私のプログラムはDownloadCompleteイベントを処理していないようです。誰かが私が間違ったことを教えてくれますか?
visual-c++ - BHO が正しく動作しません。DocumentComplete がトリガーされない
Internet Explorer の BHO を実行しています。問題は SetSite だけが機能していることです。しかし、DocumentComplete はトリガーされていません。私が間違っていることを指摘するのに助けが必要です。
ヘッダーファイル内で宣言したものは次のとおりです。
ここに私の SetSite と DocumentComplete 関数があります:
c# - BHOとサービス間のC#IPC
IE C#BHOとSYSTEMとして実行されているC#コンソールアプリの間で通信する方法が見つからないようです。
これまで、RemotingとEventWaitHandleを使用してみましたが、Win 7でUACをデフォルト設定にすると、どちらも「アクセス拒否」エラーが発生します。
RemotingとEventWaitHandleの両方を使用してサービスと通信するコンソールアプリを作成することができました。
UACをオンにして2つのプロセス間でデータを共有する方法が必要ですが、どのようなオプションがありますか?