Hola, como siempre buscando unas cosas encuentras otras, y este tema como bien lo dice
zastilla, es relamente interesante, bien pues yo les paso lo que he realizado, por ejemplo el trabajo sería sobre la pagina de Hotmail (aqui utilizaremos el componente TWebBrowse):
1.- Para ello buscariamos la página que pide logearse y en tu botón de conexión pones:
Código Delphi
[-]WN.Navigate('http://login.live.com/login.srf?');
2.- Ahora lo que tenemos que averiguar es el nombre de los elementos a los que les pasaremos los parametros, para ello, hay que averiguar el codigo de la pagina (cualquier navegador lo hace ejemplo: Maxthon), para el ejemplo dentro del codigo vemos algo como:
Dirección de correo electrónico:
input name="
login" type="text"
Contraseña:
input name="
passwd" type="password"
El botón de Iniciar Sesion:
input name="
SI" type="submit" value=" Iniciar sesión "
En este caso lo que nos interesa son los input name, van a variar dependiendo de la pagina, obviamente la talacha sera buscar estos elementos y prevenir si no los encontramos, para que sea actualizado el codigo de nuestro programa.
2.- Ahora el que controla los parametros que pasaremos sera el evento
DocumentComplete del WebBrowser, y nos ayudaremos de la interfaz
IDispatch, para pasar los parametros, te dejo el código de el evento:
Código Delphi
[-]
procedure TForm1.WNDocumentComplete(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);
var
iDisp: IDispatch;
iColl: IHTMLElementCollection;
iDoc: IHtmlDocument2;
i: integer;
ov: OleVariant;
iInputElement: IHTMLInputElement;
begin
WN.ControlInterface.Document.QueryInterface(IHtmlDocument2, iDoc);
If Not assigned(iDoc) then begin
ShowMessage('Página de Correo no Valida!!!!! ... ');
Exit;
end;
ov := 'INPUT';
IDisp := iDoc.all.tags(ov);
If assigned(IDisp) Then
Begin
IDisp.QueryInterface(IHTMLElementCollection, iColl);
If assigned(iColl) Then
Begin
For i:=1 To iColl.Get_length Do
Begin
iDisp := iColl.item(pred(i), 0);
iDisp.QueryInterface(IHTMLInputElement, iInputElement);
If assigned(iInputElement)
Then
Begin
If iInputElement.Get_name = 'login' Then iInputElement.Set_value('tucorreo@hotmail.com');
If iInputElement.Get_name = 'passwd' Then iInputElement.Set_value('lacontraseña');
If iInputElement.Get_name = 'SI' Then iInputElement.Get_form.submit;
End;
End;
End;
End;
End;
Bueno pongo esto por que muchos estamos buscando información en lo foros y da cosa que encontremos el hilo que nos interesa y no veamos informacion que nos ayude, esperoque les sea de utilidad, yo lo utilizo con D7...