この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 18379|答える: 1

[WinForm] ウェブブラウザに似たブラウザ制御

[リンクをコピー]
掲載地 2016/02/26 15:05:52 | | |

ウェブブラウザを使って独立スレッドに置いても、ウェブページを読み込むとプログラムは固まってしまい、反応しなくなったり、応答しないのではなく、CPU使用率が30%まで急上昇します。
ウェブページが読み込まれなくても止まらない。

さらに、InvokeMember("Click")を使って一部のリンクをクリックしたシミュレーションは無効であり、ブレークポイントは正しいHtmlElementに行っても、シミュレートされたクリックは応答しません。

すべてのクリックが無効というわけではありませんが、一部のボタンやリンクが無効なだけです。


上記の問題を解決する方法はありますか?
もしそうでなければ、テキストボックスへの値を割り当てたり、クリックのシミュレーションやスクロールバーの操作をしたりできる、CPU使用量の少ないサードパーティ製コントロールがあるのでしょうか。

WebKit .NET
Webkit-sharp
セフシャープ
アウエソミウム
OpenWebKitSharp
ゲッコフックス
MozNET Web コンポーネント





先の:ブラウザカーネルのGeckoとWebKitのどちらがより強力ですか?
次に:例外 WebKit.net の解決策WebKitBrowser.dll
 地主| 掲載地 2016/02/26 15:29:06 |
もしそれが原因なら簡単ですが、プロジェクトで使われているウェブサイトはIEとの互換性が非常に悪い(個人的にはIEはあまり良くなく、標準のサポートも弱いと思います)。そのため、他の類似のWebブラウザコントロールを探すしかなく、いくつかの良い代替コントロールを見つけました:

GeokoFx:Firefox GeokoエンジンのWindowsフォームパッケージ、Googleでダウンロード可能 住所:http://code.google.com/p/geckofx/ 公式ウェブサイト:http://www.geckofx.org/
WebKit.NET:webkit的.NET封装,下载地址:http://sourceforge.net/projects/webkitdotnet/

当初はGeokoFxを使うことにしました。プロジェクトで使っているウェブサイトはFirefoxで非常に高速に起動できるからです。しかし数日間調べてもjsオブジェクトをコントロールに渡す方法が見つかりませんでした。Qtのwebbrosverコントロールもカプセル化されたWebKitコントロールであることを知って、WebKitを使うことにしましたが、WebKit.NET オブジェクトを直接渡す方法を提供してくれず、そこでもう一つ良い点を見つけました:

open-webkit-sharp:对webkit.net的又一次封装,提供了很多新功能。google上下载地址:http://code.google.com/p/open-webkit-sharp/
手順は非常にシンプルです。open-webkit-sharpをダウンロードし、CoreフォルダとReferencesフォルダ内のすべてのファイルをプロジェクトディレクトリにコピーし、プロジェクトを開いて参照OpenWebKitSharp.dllとWebKit.Interop.dllを追加します(プロジェクトが.NET Framework 2.0または3.5参照で動いている場合はBinary_ NET4.0の場合、NET2フォルダ内のこれら2つのファイルは、Binaryフォルダ内のこれら2つのdllを参照しています。 次に、ツールボックス - >選択 - >選択OpenWebKitSharp.dllがあり、ツールボックスからWebKitBrowserをフォームにドラッグします。今は大きな一歩ですが、使用時にあらゆるエラーを避けるために、まず2つのサポートファイルをインストールする必要があります:
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com