0

アプリのユーザーに資格情報を要求せずに、ウェブサイトからアバターの写真を取得する必要があります。1 つの前提条件として、ユーザーはアプリを実行する前に Internet Explorer で自分の資格情報を記憶します。

そこで、Internet Explorer を開き、mshtml と SHDocVw を使用してナビゲートします。(暗記のためログインは求められません)

コンテンツが画像のみの URL に移動できますが、ダウンロードする方法が見つかりません。

HtlmDocument で mshtml.HTMLImg を見つけましたが、画像のストリームを取得できません。

誰かが解決策を持っていますか?

助けてくれてありがとう。

よろしく。

編集:そのようなものを見つけて、画像データをクリップボードに入れます

// アバターは私の mshtml.HTMLImg です

mshtml.IHTMLElement2 body2 = (mshtml.IHTMLElement2)doc.body;

mshtml.IHTMLControlRange controlRange = (mshtml.IHTMLControlRange)body2.createControlRange();

controlRange.add((mshtml.IHTMLControlElement)avatar);

controlRange.execCommand("Copy", false, System.Reflection.Missing.Value); controlRange.remove(0);

しかし、このコードは実行コマンドでブロックされています...エラーはありませんが、この行でスタックしています。

(情報: Internet Explorer 10 を使用)

4

1 に答える 1

0

こんにちは、これは、画像のURLに移動したりページを参照したりせずに、キャプチャ画像をWebブラウザーコントロールからコピーするために使用している関数の1つです。必要に応じて画像パラメーターを変更する必要があります

アバター用の html タグを指定していないため、必要に応じて次の関数を編集できません。

Private Function copyImageToClipBoard() As String
    Dim doc As mshtml.IHTMLDocument2 = DirectCast(wc.Document.DomDocument, mshtml.IHTMLDocument2)
    Dim imgRange As mshtml.IHTMLControlRange = DirectCast(DirectCast(doc.body, mshtml.HTMLBody).createControlRange(), mshtml.IHTMLControlRange)

    For Each img As mshtml.IHTMLImgElement In doc.images
        imgRange.add(DirectCast(img, mshtml.IHTMLControlElement))
        If img.src.Contains("recaptcha/api/image?c=") Or img.src.Contains("seccode.php") Then
            imgRange.execCommand("Copy", False, Nothing)
            If isManual = True Then
                Using bmp As Bitmap = DirectCast(Clipboard.GetDataObject().GetData(DataFormats.Bitmap), Bitmap)
                    Dim ofrmCap As New frmCaptcha(bmp)
                    ofrmCap.BringToFront()
                    ofrmCap.ShowDialog()
                    mCaptcha = vars.mCaptcha
                    vars.mCaptcha = Nothing
                End Using
            Else
                bgwDecaptcher.RunWorkerAsync(Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
            End If
        End If

    Next
    Return mCaptcha
End Function
于 2013-09-12T08:53:19.930 に答える