C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WebBrowserオブジェクトのChrome化対応について


(過去ログ 172 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■99027 / inTopicNo.1)  WebBrowserオブジェクトのChrome化対応について
  
□投稿者/ H-H-K (4回)-(2022/01/31(Mon) 17:07:22)

分類:[.NET 全般] 

開発環境
Windows10Pro 20H2
VisualStudio2012
VisualBasic

現在、Form内にWebBrowserを配置し、Form内のボタンをクリックした際に
WebBrowserに読み込んだASPページ内のテキスト入力された文字を取得する仕組みがあります。
既定のアプリの選択でブラウザーをChromeにしても、
WebBrowserはベースがIEなので、Chromeにならないとありました。
WebBrowserを使用したまま、Chromeベースにすることは可能なのでしょうか?
WebBrowserとは違う別のオブジェクトにする必要があるのでしょうか?
その場合、以下のような処理はそのまま使えるのでしょうか?
※ChromeではなくEdgeでも可
御存知の方いらっしゃいましたら教えて頂けるとありがたいです。
宜しくお願い致します。

VB内処理(抜粋)
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	object_WebBrowser.Navigate("http://Input/TestInput.asp")
End Sub

Private Sub DataGet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGet.Click
	Dim Wb 		As WebBrowser
	Dim GetNaiyou 	As String 

	Wb = object_WebBrowser
	GetNaiyou = Wb.Document.All("textNaiyou").DomElement.VALUE
End Sub


ASP内記述(抜粋)
<textarea rows="5" name="textNaiyou" style="ime-mode:active"></textarea>

引用返信 編集キー/
■99028 / inTopicNo.2)  Re[1]: WebBrowserオブジェクトのChrome化対応について
□投稿者/ 魔界の仮面弁士 (3287回)-(2022/01/31(Mon) 17:38:32)
No99027 (H-H-K さん) に返信
> WebBrowserはベースがIEなので、Chromeにならないとありました。

はい。内部的には Internet Explorer として動作するコンポーネントです。

WebBrowser コントロールの HTML レンダリングエンジンは Trident(MSHTML) であり、
それ以外にはなりません。これは、既定で IE7 として動作しますが、
レジストリ設定によって、たとえば IE11 などとして動作させることもできます。
https://www.ipentec.com/document/csharp-change-webbrower-control-internet-explorer-version

なお、WebBrowser の動作バージョンを切り替えた場合、コンテンツによっては
Document オブジェクトやスタイルシートの振る舞いが変化することがあります。


> WebBrowserを使用したまま、Chromeベースにすることは可能なのでしょうか?
いいえ。WebBrowser を IE 以外のブラウザーとして動作させることはできません。


> WebBrowserとは違う別のオブジェクトにする必要があるのでしょうか?
> ※ChromeではなくEdgeでも可
Edge や Chrome のように振舞うことを期待するのであれば、WebBrowser ではなく、
Chromium 系のブラウザーコントロールを使う必要があります。たとえば WebView2 コントロールなどです。
FireFox 系の場合は… GeckoWebBrowser コントロールだったかな。


> その場合、以下のような処理はそのまま使えるのでしょうか?
処理は可能ですが、それを実現するためのコードは異なるので書き換えが必要です。
(WebBrowser のように DOM による操作を行うのではなく、JavaScript のコードを送り込んで操作するイメージです)
引用返信 編集キー/
■99029 / inTopicNo.3)  Re[2]: WebBrowserオブジェクトのChrome化対応について
□投稿者/ くま (147回)-(2022/01/31(Mon) 18:59:11)
WebBrowser のようなDOM操作をvb.netから直接行いたいなら
Selenium Basic を使用するのも一つの方法です。
ChromeとEdgeに対応しています。
https://qiita.com/k_airyuu/items/959d9819fb77ec6ac0d6
https://lil.la/archives/3679
https://web.biz-prog.net/selenium/readme.html

(vb.netやC#だと一般的でない?)

ただコントロールではなくヘッドレスブラウザモード(画面を表示させない状態で使用する)か別画面で開く事になるので
使用用途に合うか分かりませんが...。

個人的にはWebView2コントロールがオススメです。
引用返信 編集キー/
■99049 / inTopicNo.4)  Re[2]: WebBrowserオブジェクトのChrome化対応について
□投稿者/ H-H-K (5回)-(2022/02/04(Fri) 08:17:03)
No99028 (魔界の仮面弁士 さん) に返信

魔界の仮面弁士様

返信ありがとうございます。
WebBrowserでのIE7動作を11で動作させる方法を教えて頂きありがとうございます。
WebView2を使用しようか検討します。
そのままのコードで動作は不可とのことで、勉強しながら書き換えようと思います。


> ■No99027 (H-H-K さん) に返信
>>WebBrowserはベースがIEなので、Chromeにならないとありました。
>
> はい。内部的には Internet Explorer として動作するコンポーネントです。
>
> WebBrowser コントロールの HTML レンダリングエンジンは Trident(MSHTML) であり、
> それ以外にはなりません。これは、既定で IE7 として動作しますが、
> レジストリ設定によって、たとえば IE11 などとして動作させることもできます。
> https://www.ipentec.com/document/csharp-change-webbrower-control-internet-explorer-version
>
> なお、WebBrowser の動作バージョンを切り替えた場合、コンテンツによっては
> Document オブジェクトやスタイルシートの振る舞いが変化することがあります。
>
>
>>WebBrowserを使用したまま、Chromeベースにすることは可能なのでしょうか?
> いいえ。WebBrowser を IE 以外のブラウザーとして動作させることはできません。
>
>
>>WebBrowserとは違う別のオブジェクトにする必要があるのでしょうか?
>>※ChromeではなくEdgeでも可
> Edge や Chrome のように振舞うことを期待するのであれば、WebBrowser ではなく、
> Chromium 系のブラウザーコントロールを使う必要があります。たとえば WebView2 コントロールなどです。
> FireFox 系の場合は… GeckoWebBrowser コントロールだったかな。
>
>
>>その場合、以下のような処理はそのまま使えるのでしょうか?
> 処理は可能ですが、それを実現するためのコードは異なるので書き換えが必要です。
> (WebBrowser のように DOM による操作を行うのではなく、JavaScript のコードを送り込んで操作するイメージです)
引用返信 編集キー/
■99050 / inTopicNo.5)  Re[3]: WebBrowserオブジェクトのChrome化対応について
□投稿者/ H-H-K (6回)-(2022/02/04(Fri) 08:20:51)
No99029 (くま さん) に返信

くま様

返信ありがとうございます。
Selenium Basicですと、DOM操作が行えるとのことで
教えて頂きありがとうございます。
WebView2が良いとのことで、ソース変更は仕方がないと思っていますので、
WebView2を検討したいと思います。


> WebBrowser のようなDOM操作をvb.netから直接行いたいなら
> Selenium Basic を使用するのも一つの方法です。
> ChromeとEdgeに対応しています。
> https://qiita.com/k_airyuu/items/959d9819fb77ec6ac0d6
> https://lil.la/archives/3679
> https://web.biz-prog.net/selenium/readme.html
>
> (vb.netやC#だと一般的でない?)
>
> ただコントロールではなくヘッドレスブラウザモード(画面を表示させない状態で使用する)か別画面で開く事になるので
> 使用用途に合うか分かりませんが...。
>
> 個人的にはWebView2コントロールがオススメです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -