問題タブ [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++ - 2LPOLESTRを連結する方法
2つの文字列をC++で連結したいのですが、char*を使用できません。
次のことを試しましたが、機能しません。
s1とs2を連結した文字列が必要です。これについてもっと説明する情報やウェブサイトはありますか?ありがとう。
delphi - デルファイ。IEによってダウンロードされているURLを監視する方法は?
IEでページを開くと、CSS、スクリプト、画像、SWFなどの多くのファイルがダウンロードされます。これらすべてのURLを監視し、このリストをファイルに保存する小さなプラグインを開発する必要があります。
Delphiで必要ですが、他のプログラミング言語での例は本当にありがたいです。
com - NSIS インストーラーを使用して BHO を登録する
私は、Visual Studio のセットアップおよび展開プロジェクトを通じてパッケージ化していた IE BHO を持っています。NSISインストーラーを介してパッケージ化したいと思います。
私のBHOは次の方法で登録していました:
これはVSによって作成されたmsiインストーラーによって処理されますが、NSISを使用して同じことを行う方法を知りたいですか?
どんな助けでも大歓迎です!
カピル
uac - IE のプロテクト モードで警告を抑制する方法
Webページを画像としてキャプチャするBHOがあり、別のプロセスを実行して、作成された画像をpngcrushします。UAC 対応システムで直面する問題は、IE を実行するたびに、BHO から生成した pngcrushing プロセスに関する警告が表示されることです。私はここで読んだ
保護モードの Internet Explorer アーカイブの理解と使用
保護モードからのプロセスの開始
一般に、拡張機能は可能な限り整合性の低いプロセスとして動作する必要があります。これにより、悪意のある攻撃に対する最善の保護が提供されます。ただし、拡張機能が中間または高整合性のオブジェクトにアクセスする必要がある場合もあります。
これを行うには、より高い整合性オブジェクトにアクセスするためのブローカー プロセスを作成し、より高い整合性レベルでブローカー プロセスを起動します。デフォルトでは、次のスクリーン ショットに示すように、Internet Explorer はユーザーに中間整合性昇格プロセスを確認するように求めます。
特定のブローカーの昇格を処理する方法を保護モードに指示する一連のレジストリ キーと値である昇格ポリシーを作成することにより、ブローカー プロセスを中間の整合性レベルに静かに昇格させることができます。昇格ポリシーには、グローバル一意識別子 (GUID) が関連付けられている必要があります。CreateGuidを使用して、ポリシーの新しい GUID を作成します。次に、次の場所にキーを追加します。
次に、ヘルプ プロセスをサイレント モードで昇格させるために必要なレジストリ エントリの説明に進みます。
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{8e884ace-bee4-11e4-8dfc-aa07a5b093db}
- AppName : REG_SZ = "Contoso.exe"
- AppPath : REG_SZ =
"C:\%USERPROFILE%\Application Data\Contoso"
- ポリシー: REG_DWORD = 0x00000003
これらの警告を通過するかどうかを確認するために同じレジストリエントリを手動で行ったところ、機能していないことがわかりました。UAC の警告なしに BHO からサイレント モードでプロセスを実行する方法を誰か教えてもらえますか?
カピル
c# - C# IE BHO: DOM オブジェクトをワーカー スレッドにマーシャリングするにはどうすればよいですか?
別のスレッドで DOM を操作するブラウザ ヘルパー オブジェクト(BHO) を C# で記述しようとしています。これに関連する他のいくつかの質問を見たことがありますが、その答えは「作成されたスレッドからワーカー スレッドに DOM オブジェクトをマーシャリングする必要がある」と思われます。良いアドバイスです。完全に理にかなっていますが、これを行う方法に関する C# の例は見つかりません。使用する必要のある P/Invoke API へのあいまいなポインタがいくつかありますが、それを BHO に実装する方法を理解するのは困難です。
私は例から学ぶのが一番ですが、ドキュメントには、この種の .NET の例がひどく不足しています。マネージ コード BHO のコンテキスト内で、ワーカー スレッドを介して DOM が操作される例を教えてもらえますか?
internet-explorer - Internet Explorer BHO と SSL
ページ上の各リンクの後にアイコンを追加する IE プラグインを開発しました。しかし、https サイトをナビゲートすると、IE が制限されているというメッセージが表示されます.....アクセスを許可しようとすると、IE はそのメッセージを再度表示します。どうすれば修正できますか、どこが間違っていますか?
c# - BHOメモリリーク
私はこのチュートリアルに基づいてBHOを作成しました:http: //www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx
私GetSite
とSetSite
はチュートリアルリストと同じです。OnDocumentComplete
ハンドラーを追加/削除し、 SetSite関数SHDocVW.WebBrowser webBrowser
内で割り当てていますIObjectWithSite
デバッグの目的で、基本的な機能を除くすべてを削除しました。これが私のOnDocumentComplete
ハンドラーです。
VS2008デバッガーをIEインスタンスに接続すると、それぞれのウィンドウ/タブが閉じられた後、ロードされたすべての.jsがスタックしていることに気付きます。OnDocumentCompleteの条件をfalseに設定すると(またはBHOを無効にすると)、リークはなくなります。mshtml.HTMLDocumentで実行する必要のあるクリーンアップは他にもありますか?ありがとう!
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)。