問題タブ [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# - IHTMLElement2.getBoundingClientRect()が正しく機能しない
getBoundingClientRect()は、すべての場合に正確に機能するわけではありません。すべてのリンクを同じ行に収めることができないため、連続して並んでいるリンクのリストとその半分が次の行にプッシュされると、失敗します。2行目の最初のリンクでは、getBoundingClientRect()は正しい結果を提供しません。
IHTMLRect.bottomとIHTMLRect.rightの値は正しいですが、IHTMLRect.leftとIHTMLRect.topの値は、最初の行の最初の要素に対応しています。
2行目の最初のリンクの正確な座標を取得するにはどうすればよいですか?
これは、たとえば、言語や場所のリンクがたくさんあるグーグルページやウィキペディアページで発生します。
たとえば、widipediaのリンクは次のように述べています。
レイアウト上、以下のように2行で表示されます。
この場合、IHTMLElement2.getBoundingClientRect()は、Françaisを除くすべてに対して完全に機能します。
なぜこれが起こっているのかわかりません。この問題のヘルプや回避策をいただければ幸いです。
c# - BHOで動的にフローティングdivを作成する方法は?
C#.NET で BHO を使用して、ロード時に Web ページにフローティング DIV を作成するにはどうすればよいですか?
ページに「Hello World」を表示する DIV の HTML コード スニペットを挿入したいだけです。div には絶対位置スタイルが必要です。
-だって
c# - 64ビットOSのIE7でBHOプラグインが機能しない
IE732ビットXP/Vistaでスムーズに動作するBHOは、64bt XP/VistaのIE7では動作しません。問題はBHOアセンブリの登録にあると思います。BHOを64ビットプラットフォームで機能させるための優れたソリューションを誰かが持っているでしょうか?
ありがとう、
ダッテ
browser - Google はどのようにして IE のタブのすぐ下にツールバーを表示しますか?
BHO 関連のドキュメントをすべて調べましたが、Google が IE のタブのすぐ下に翻訳ツールバーを表示する方法がわかりません。
自分のツールバーで同じ効果を得る方法はありますか?
.net - リモート ユーザー PC での .NET 問題のデバッグ
.NET IE ツールバーをサポートしています。これは、さまざまなリモート ロケーションで、さまざまな OS と IE バージョンを使用しているユーザーの母集団を対象としています。これらの少数のユーザーの場合、ツールバーは正しくインストールされますが、IE で有効にしようとしても実際にはロードされません。テスト PC でこの状況を再現することはできませんでした。
ほとんどのサポートは電話または WebEx を介して行われるため、お客様の PC へのアクセスは多少制限されます。セキュリティ設定、gpo ポリシー、読み込みに失敗しているアセンブリ、および Visual Studio デバッガー、fuselogvw、その他の開発者ツールで通常見ているその他の低レベルのものなどの情報を収集する方法を探しています。しかし、私の顧客の PC では、これらのツールの余裕がないので、もう少し機知に富む必要があります。
では、ほとんどの PC で利用できるツール、または詳細なデバッグ情報を入手できる簡単な無料ダウンロードのツールは何ですか?
remoting - .NETIEBHOリモーティング
IE 8のツールバーアドインであるIEブラウザヘルパーオブジェクトがあります。共通のインターフェイスを介してリモート処理を使用してこのBHO(リモートサーバー)に接続する別の.NET .EXEアプリケーション(リモートクライアント)があります。サーバーコンポーネントで使用されているのと同じコードを使用して.EXEアプリケーションとTEMPコンソールアプリケーション間の通信をテストすると、正常に通信し、リモートメソッドを実行します。
ただし、TCPチャネルのセキュリティを使用してBHOサーバーと通信しようとすると、ChannelServices.RegisterChannel(tcpClientChannel、true);がオンになります。、「FileNotFoundException」が発生します。ファイルまたはアセンブリ「xxxx」を読み込めませんでした。「xxxx」は、サーバーメソッドを含む一般的なインターフェイスアセンブリです。
TCPチャネルのセキュリティを使用してBHOサーバーと通信しようとするとOFFChannelServices.RegisterChannel(tcpClientChannel、false); 、「リモートオブジェクトへの接続が強制的に閉じられました」というエラーが表示されます。
単純なテストコンソールアプリで再テストすると、機能します。
問題はBHOインスタンス内でのリモーティングの動作にあると私は信じ始めています...BHO.NETインスタンスでリモーティングを使用した人はいますか?SPICIEライブラリを使用して.NETを使用してBHOを作成しています。
リモーティングインターフェイスオブジェクト名前空間のCOMMONインターフェイスアセンブリWWie.CommonClasses{classWWieRemote:MarshalByRefObject、WWieClassLibrary.WWieCommonClass.IGetHtmlElement {public string GetElementClicked(){return( "Returned from WWieRemote"); }
}
CLIENT APP static TcpChannel tcpClientChannel = new TcpChannel(); public static WWieClassLibrary.WWieCommonClass.IGetHtmlElement remoteObject; ChannelServices.RegisterChannel(tcpClientChannel、false); remoteObject =(WWieClassLibrary.WWieCommonClass.IGetHtmlElement)Activator.GetObject(typeof(WWieClassLibrary.WWieCommonClass.IGetHtmlElement)、 "tcp:// localhost:9002 / TestWWie");
リモートメソッド呼び出しによるテスト
サーバーBHOTcpChanneltcpServerChannel = new TcpChannel(9002); ChannelServices.RegisterChannel(tcpServerChannel、true); RemotingConfiguration.RegisterWellKnownServiceType(typeof(WWieClassLibrary.WWieCommonClass.IGetHtmlElement)、 "TestWWie"、WellKnownObjectMode.Singleton);
windows - BHO、IHTMLDocument2:get_scripts()、および外部スクリプト
IHTMLDocument2::get_scripts を使用して HTML ファイル内のすべてのスクリプト本体を取得し、get_text() を使用してスクリプト ソースを取得するコードである BHO を作成しています。しかし、スクリプトが外部ファイルから埋め込まれている場合、コンテンツは空の文字列であることがわかりました。
によって作成された IHTMLScriptElement からソース コードを取得する方法はありますか?
c# - イベントハンドラーをmshtml.DispHTMLInputElementにアタッチします
C#でBHO(Browser Helper Object)を作成するのに忙しく、入力要素のすべてのonclickイベントにイベントハンドラーをアタッチする必要があります。Visual Studioが提供する組み込みのWebブラウザーを使用していません。代わりに、クライアントPCにインストールされているInternetExplorerの新しいインスタンスを起動しています。異なるバージョンのIEを使用すると、問題が発生します。
IE7とIE8では、次のように実行できます。
これは完全に機能します。つまり、IE6はHTMLInputElementClassにキャストするときにエラーをスローするため、DispHTMLInputElementにキャストする必要があります。
問題は、イベントをDispHTMLInputElementオブジェクトにアタッチする方法が見つからないようです。何か案は?
c# - 保護モードを使用してインスタンス化されていないマネージドBHO
私はC#を使用してIE用のBHOを書いています。私が関わっているコードはこれです:
IEを保護モードをオフにして実行すると、すべてが正常に機能します。ただし、保護モードがオンになっている場合、NavigateCompleted2()は呼び出されますが、SetSite()とコンストラクターは呼び出されません(!?!)。ただし、BHOクラスのメソッドを呼び出すメニュー項目を作成するか、新しいタブを開くと、すべてが正しく呼び出されます。新しいIEウィンドウを開いたときになぜ機能しないのか誰かが知っていますか?
完全なソースリストはここにあります。
c# - IE 保護モードで AppData にアクセスする方法 (マネージド BHO から)
C# で IE 拡張機能 (BHO) を作成しています。プロテクト モード (IE の新しい UAC 準拠モードで、すべての拡張機能を低整合性で実行することを強制する) で実行すると、appdata フォルダーの user.config にアクセスできないため、失敗します。
ファイルが整合性の低いプロセスで読み取り可能であることをマークする方法はありますか?
それができない場合、BHO を強制的に中間レベルの整合性で実行する方法はありますか?
それができない場合、AppData の中程度の整合性ファイルを指す低整合性のフォルダに低整合性のシンボリック リンクを作成する方法はありますか?
それができない場合、アプリケーションに LocalLow フォルダー内の user.config ファイルを強制的に使用させる方法はありますか? .net でこのフォルダーのパスを取得するにはどうすればよいですか (Environment.SpecialFolder の下にリストされていません)。XP を実行しているユーザーや、保護モードをオフにしているユーザーに、すべての user.config データを失うことなくフォールバックできますか?