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

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

NePk

Membre actif
Nov 8, 2011
150
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
V
Ancien staff
Mar 3, 2011
4,069
3
944
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
Nov 8, 2011
150
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
V
Ancien staff
Mar 3, 2011
4,069
3
944
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
Nov 8, 2011
150
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
 
Status
Not open for further replies.