[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/09/10(Sat) 10:48
投稿者名:ちり
Eメール:
URL :
タイトル:
WebBrowserで画像を表示させない
 お世話になります。タイトルの通りなのですが、WebBrowserで画像を表示させずに表示させる方法は
あるのでしょうか? イメージ的には、インターネットオプションで画像を表示するのチェックを外

たような表示をさせたいのです。

 ただし、インターネットオプションの設定を変更した場合のように、すべてのブラウザの画像を表

させないのではなく、目的のWebBrowserのみ画像を表示させたくないのです。このような処理が可能

のでしょうか。

xpsp1 vb6sp5

投稿時間:2005/09/13(Tue) 13:48
投稿者名:これ
URL :
タイトル:
Re: WebBrowserで画像を表示させない
>  お世話になります。タイトルの通りなのですが、WebBrowserで画像を表示させずに表示させる方法

> あるのでしょうか? イメージ的には、インターネットオプションで画像を表示するのチェックを外
> し
> たような表示をさせたいのです。
>

こんにちわ。
私も以前 仕事でWebの自動処理を作るときに調べたのですが
C++の記事ばっかりで VB6.0での記事は見当たりませんでした。
VB6.0でアンビエントプロパティの実装ってところがどーしてもわからずに断念。
結局、業務に直接関係ないということで その機能なしで完成しました。

ただ、 .NET だとできるようです。
http://d.hatena.ne.jp/santamarta/20050220

.NETへの移行が可能なようでしたら検討されてはいかがでしょう?

魔界の仮面弁士 様 あたりがコメントいれてくれないかなぁと
レスがつくのを興味深く見守っていたのですが・・・
VB6.0で実現できるもんなんでしょうか・・・

投稿時間:2005/09/13(Tue) 17:57
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^2: WebBrowserで画像を表示させない
> 魔界の仮面弁士 様 あたりがコメントいれてくれないかなぁと
> レスがつくのを興味深く見守っていたのですが・・・

難しそうですよ。
hhttp://homepage1.nifty.com/MADIA/vb/vb_bbs2/200406_04060091.html


Ambientの実装 投稿者:K.J.K.  投稿日: 7月 1日(木)09時14分54秒
hhttp://tinyurl.com/d4ddr

投稿時間:2005/09/13(Tue) 19:08
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^3: WebBrowserで画像を表示させない

 レスありがとうございます。

 リンク先を読んだり、AmbientPropertiesという言葉をヒントにいろいろ調べてみましたが、
恐らく不可能であろうということが分かりました。ありがとうございまいした。

 ソースを変更する等の代替案のヒントが載っていたので、その辺についても調べてみます。

投稿時間:2005/09/13(Tue) 19:52
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^4: WebBrowserで画像を表示させない
>  ソースを変更する等の代替案のヒントが載っていたので、その辺についても調べてみます。



ちょっと強引な方法ですが、ただ画像ファイルの種類が多いので!(ごみレスかも)

Private Sub Command1_Click()
    Dim myHtm As String
    WebBrowser1.Navigate "hhttp://www.bcap.co.jp/hanafusa/top.htm"
    
    Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Loop
    
    myHtm = WebBrowser1.Document.body.innerHTML
    myHtm = Replace(myHtm, ".gif", "")
    WebBrowser1.Document.write myHtm
End Sub

投稿時間:2005/09/14(Wed) 12:32
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^5: WebBrowserで画像を表示させない
レスありがとうございます。

SampleNo=169を利用して、最初にソースのみを読み込んで、画像を消し、
WebBrowserに表示させる方法を試していましたが、文字化けするサイトがありました。

また、この方法だとベースURLが狂うので相対リンクでパスを記述してあるサイトもNGになりました。


花ちゃんさんのサンプルをいろいろ試して分かったのですが、一度まともに表示してから、
画像抜きのソースで表示させているので、上記の方法と同様に相対リンクがNGになってました。


そこで、

    Dim myHtm As String
    WebBrowser1.Navigate url
    
    Do While WebBrowser1.ReadyState <> READYSTATE_LOADED
        DoEvents
    Loop

    'ソースの読み込みが完了した時点でWebBrowser1の処理を中断
    WebBrowser1.stop '処理イメージ
    
    '画像を表示しないソースに差し替え
    myHtm = WebBrowser1.Document.body.innerHTML
    myHtm = Replace(myHtm, ".gif", "")
    WebBrowser1.Document.body.innerHTML = myHtm

    '処理再開
    WebBrowser1.restart '処理イメージ

このような感じの処理が出来れば画像を表示させずに表示出来そうですが、
こんな処理が可能かどうかも分からないので、もう少し調べてみます。


しかし、魔界の仮面弁士さんはすごすぎです。

投稿時間:2005/09/15(Thu) 09:45
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^6: WebBrowserで画像を表示させない

 自己レスです。

 一応、画像を表示させずに表示させ、リンク先に飛ぶ(一部不可)ことが出来ましたので、
その結果を報告します。

 処理の内容としては、WebBrowser1が読み込み処理を行うまえに、BeforeNavigate2でキャンセルし、
別途ソースのみを読み込む。画像表示をつぶす。WebBrowser1に読み込ませる。リンクを修正する。
といった流れです。ですが、CSSを読めない、aaa.htm#bbbのリンクは飛ばない、ファイルのDLが出来な
い、
CGIの処理が出来ない、文字化けする、等々、問題が多すぎるので諦めました。

 レスしてくださったみなさん。ありがとうございました。



Private reLoadHN As Boolean
Private aPath As String
Private bPath As String
Private sURL As String


Private Sub Form_Load()

    aPath = fYen(App.Path) & "tmp.htm"
    bPath = aPath & "l"

End Sub


Private Sub Command1_Click()

    WebBrowser1.Navigate "hhttp://www.yahoo.co.jp/"

End Sub


Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As
Variant, _
TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)

Dim S As String
Dim i As Long

    '永久防止
    If reLoadHN = True Then
        Cancel = False
        Exit Sub
    Else
        reLoadHN = True
    End If
    
    '読み込みをキャンセル
    Cancel = True
    '変更
    sURL = URL

    'html所得
    'S = getHtmlMsXML(sURL)
    
    'SampleNo=132
    getHtmlInet sURL, aPath
    'ファイルの読み込み
    fLoadFile aPath, S

    'エラー回避
    If S = "" Then
        reLoadHN = False
        Exit Sub
    End If

    '元を保存
    fSaveFile "tmp.htm", S
    '画像表示情報を削除
    S = delImgTag(S)
    'すり替えた情報を保存
    fSaveFile bPath, S
    'すり替え表示
    WebBrowser1.Navigate bPath
    Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Loop

            'ベースURLを登録
            '×:読み取り専用
            'WebBrowser1.LocationURL sURL

    'リンクを修正
    For i = 0 To WebBrowser1.Document.links.length - 1
        WebBrowser1.Document.links(i).href = _
    Replace(WebBrowser1.Document.links(i).href, "file:///C:/", sURL)
    Next i
    
    '終了
    reLoadHN = False

End Sub


Private Function delImgTag(ByVal S As String) As String

    S = Replace(S, ".gif", "")
    S = Replace(S, ".jpg", "")
    delImgTag = S

End Function

投稿時間:2005/09/15(Thu) 11:08
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^7: WebBrowserで画像を表示させない
こういうのはだめでしょうか。

Dim img As Object

WebBrowser1.Navigate "hhttp://www.google.com/intl/ja/"

Do While WebBrowser1.Busy = True
    DoEvents
Loop

Do While WebBrowser1.Document.ReadyState <> "complete"
    DoEvents
Loop

For Each img In WebBrowser1.Document.getElementsBytagName("img")
    img.Style.visibility = "hidden"
Next img

投稿時間:2005/09/15(Thu) 11:55
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^8: WebBrowserで画像を表示させない
 レスありがとうございます。

 最初に条件として書いてなかったのですが、自分の場合は画像を読み込ませたくないのです。
LESIAさんのサンプルもすべて表示した後に画像を消しているという処理なのでNGなんです。すいませ
ん。

 しかし、すごいですね。No.4404 花ちゃんさんのサンプルを見た時、自分が考えた画像のつぶし方は


    For i = 0 To WebBrowser1.Document.images.length - 1
        WebBrowser1.Document.images(i).Visible = False
    Next i
(実際はこんなプロパティないです)

という感じの方法でしたが、for each で document内の tagname を検索する方法もあるんですね。
大変勉強になりました。ありがとうございました。

投稿時間:2005/09/13(Tue) 23:02
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: WebBrowserで画像を表示させない
> VB6.0で実現できるもんなんでしょうか・・・

その問いに対しては、『可能』と答えておきます。
hhttp://bbs4.aimix-z.com/gbbs.cgi?room=hanafusa

投稿時間:2005/09/15(Thu) 13:01
投稿者名:これ
URL :
タイトル:
Re^3: WebBrowserで画像を表示させない
> > VB6.0で実現できるもんなんでしょうか・・・
>
> その問いに対しては、『可能』と答えておきます。
> hhttp://bbs4.aimix-z.com/gbbs.cgi?room=hanafusa

花ちゃん 様、魔界の仮面弁士 様
他力本願なコメントに レスありがとうございました。
いつか、こちらか魔界の仮面弁士 様のサイトで
解説が載るのを期待しつつ、私も精進します。

投稿時間:2005/09/15(Thu) 14:11
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: WebBrowserで画像を表示させない
> > その問いに対しては、『可能』と答えておきます。
> > hhttp://bbs4.aimix-z.com/gbbs.cgi?room=hanafusa
> いつか、こちらか魔界の仮面弁士 様のサイトで
> 解説が載るのを期待しつつ、私も精進します。
解説する予定も技量も無いですし、そもそもサイト自体持ってないです。(^^;
# サボりがちのblogならありますが。

それに私は、単にサンプルを実行しただけですよ。Eduardo A. Morcillo.さんの、
[Source Code]-[Old VB6 Code]の[Custom WebBrowser control]というサンプルを。
hhttp://www.mvps.org/emorcillo/


ソースで手を加えた所といっても、せいぜいこの程度ですし。

1. 付属のocxだとエラーになるので、ソースからビルドしなおす。

2. 動作サンプル中の Form_Load イベントあたりを若干修正。
   2.1 ローカルの page1.html を表示させていたのを、google サイトに修正。
   2.2 HostInfo に NoScroll を指定していたのを取りやめ、スクロールバーありに設定。
   2.3 DownloadCtrl を少し修正して、画像出力(など)がされないように設定。

投稿時間:2005/09/15(Thu) 19:46
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^5: WebBrowserで画像を表示させない

 自分も魔界の仮面弁士さんの道しるべを基にサンプルを実行することは出来ましたが、
これを理解しろとなると、自分のレベルでは到底無理そうです。

 しかし、これを組み込むことは可能そうなので、さしおり目的は達成できました。
すこしづつでも理解していって自分のものにしていきたいです。

 レスして頂いたみなさん。ありがとうございました。

投稿時間:2005/09/16(Fri) 16:01
投稿者名:これ
URL :
タイトル:
Re^5: WebBrowserで画像を表示させない
> # サボりがちのblogならありますが。
>
ああ、すいません!blogでしたね。(汗


私も早速サンプルGetしてきましたので
当時のソースを引っ張り出してきて
あわせていろいろやってみようと思います。
道は険しそうですが・・・