[VB.net]Afficher le Captcha d'un formulaire (Webbrowser) dans une picturebox

  • Comme vous le savez le discord n'est malheureusement plus disponible, voici donc le nouveau moyen de communication à travers CG3 : Matrix Pour plus d'informations sur la fermeture du discord : Fermeture du discord.

Statut
La discussion n'est pas ouverte à d'autres réponses

NePk

Membre actif
8 Nov. 2011
149
0
922
Cherche bien :P
Coucou !
Je pense que le titre de mon sujet est assez compréhensible :)

Mais je vais développer
déjà, voici le code source du formulaire contenant l'image captcha que j'aimerais mettre afficher dans mon programme, je dis picturebox, mais je ne suis pas sûr.
Bien sûr, je veux le captcha de la page chargée dans le webbrowser.
<form method="post" action="http://lesite.net/index.php?page=register#" name="inscription">
<tbody><tr><td> Nom de Compte :</td><td>
<input class="input" name="name" type="text"></td> <br>
</tr><tr><td> Mot de passe :</td><td>
<input class="input" name="pass" type="password" value=""></td><br>
</tr><tr><td>Confirmez le mot de passe :</td><td>
<input class="input" name="pass2" type="password" value=""></td><br>
</tr><tr><td>Votre Pseudo :</td><td>
<input class="input" name="pseudo" type="text"></td><br>
</tr><tr><td>Votre Email :</td><td>
<input class="input" name="mail" type="text" value=""></td><br>
</tr><tr><td>Question Secrete :</td><td>
<input class="input" name="secretquestion" type="text" value=""></td><br>
</tr><tr><td>Réponse Secrete :</td><td>
<input class="input" name="secretanswer" type="password" value=""> </td><br>
</tr><tr><td>Securite : <img src="http://lesite.net/image_code.php" alt="code de securite" style="position: relative; top: 3px;" name="securehgtm"> </td><td><br>
<input class="input" name="codesecu" type="text"> </td>
</tr></tbody></table>

<br>
<center><input class="input" name="ok" value="Inscription" type="submit"></center>
</form>
Désolé si ce n'est pas clair, j'ai mis en gras la partie intéressante.

voili voilou, j'espère que vous accepterez de m'aider :)
 

Ben

Master Chief
Ancien staff
3 Mars 2011
4,070
3
603
Un peut partout.
Simple, avec une petite fonction de regex qui va chercher une chaine entre deux autres chaines déclaré.

Voilà exemple pour la page que tu nous montre :

La fonction :
Private Function entre(ByVal input As String, ByVal S1 As String, ByVal S2 As String, ByVal index As Integer) As String
Dim projet As String = Regex.Split(input, S1)(index + 1)
Return Regex.Split(projet, S2)(0)
End Function
Comment l'utiliser :

PictureBox1.ImageLocation = (entre(WebBrowser1.DocumentText,"<td>Securite : <img src=""", """", 0))
 

NePk

Membre actif
8 Nov. 2011
149
0
922
Cherche bien :P
Merci beaucoup je connaissais pas RegEx ^^

Mais là, Ben, avec ta fonction, ça me dit:
L'index se trouve en dehors des limites du tableau.
 

Ben

Master Chief
Ancien staff
3 Mars 2011
4,070
3
603
Un peut partout.
j'ai pris l’exemple sur la source de page que tu a donné hein, si la source de la page que tu utilise n'est pas la même que dans l'exemple ça ne risque pas de fonctionner
 

NePk

Membre actif
8 Nov. 2011
149
0
922
Cherche bien :P
J'ai trouvé pile ce qu'il me fallait :P

Dim doc As IHTMLDocument2 = Me.WebBrowser1.Document.DomDocument
Dim imgRange As IHTMLControlRange = CType(doc.body, HTMLBody).createControlRange
For Each img As IHTMLImgElement In doc.images
If img.GetAttribute("src").ToString.Contains("png?") Then
imgRange.add(img)
imgRange.execCommand("Copy", False, Nothing)
PB_CAPTCHA.Image = Clipboard.GetDataObject.GetData(DataFormats.Bitmap)
Exit For
End If
Next
 
Statut
La discussion n'est pas ouverte à d'autres réponses