pulley 0 Denunciar post Postado Março 4, 2009 Srs Talvez alguem já postou essa dúvida, mas, assim mesmo não a encontrei aqui no forum, é o seguite: Queria inserir dados em um formlário HTML que foi aberto por um programa no DELPHI usando o COmponente TWebBrowser, fiquei sabendo que tem como por JavaScript mas como seria? Por exemplo um código como este: WebBrowser1.Navigate(WideString('http://www.hotmail.com.br')); dassa maneira o componente abre o site do hotmail, daí como por exemplo colocar dentro dos campos do formulário o LOGIN e a SENHA. Alguem Pode me ajudar. Grato. Compartilhar este post Link para o post Compartilhar em outros sites
pulley 0 Denunciar post Postado Março 5, 2009 Pessoal encontrei uma documentação sobre o assunto http://www.delphidabbler.com/articles?article=21 Porem ainda assim não consegui desenvolver a questão citado no Tópico Acima, mas poda clareara as idéias de alguem. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 6, 2009 Para fazer isso você teria que saber onde exatamente iria jogar seus dados e montar uma rotina um pouco chata, pois teria que encontrar onde exatamente iria jogar sua informação na página para preenche-la. procedure TfrmMain.trataPagina; Var Document : IHTMLDocument2; FormItem: Variant; Field: Variant; FieldName: String; I,J: Integer; begin Document := Browser.Document as IHTMLDocument2; if browser.OleObject.Document.all.tags('FORM').Length = 0 then Exit; for I := 0 to browser.OleObject.Document.forms.Length - 1 do begin FormItem := browser.OleObject.Document.forms.Item(I); for j := 0 to FormItem.Length - 1 do try //Identifica o campo e seu nome no formulário Field := FormItem.Item(j); FieldName := Field.Name; if FieldName = 'c_senha' then Field.Value := edit1.text; if FieldName = 'c_usuario' then Field.Value := edit2.text; except end; end; if not tbtnAssistido.Down then begin inicio := now; timer1.enabled := true; //Executou todas os scripts de página antes de chamar a rotina que pode contar erros ou não bContabilizaErro := true; ExecuteScript(Document, 'mudarPagina(''parcelamento'')', 'JavaScript'); end; end; procedure TfrmMain.ExecuteScript(doc: IHTMLDocument2; script: string; language:string); var win: IHTMLWindow2; Olelanguage: Olevariant; begin if doc <> nil then begin try win := doc.parentWindow; if win <> nil then begin try Olelanguage := language; win.ExecScript(script, Olelanguage); finally win := nil; end; end; finally doc := nil; end; end; end; O problema desse tipo de programa é que se você não souber como a tela está montada, quais as tags utilizadas e tals, você não vai conseguir jogar os dados no lugar correto. []'s Compartilhar este post Link para o post Compartilhar em outros sites
pulley 0 Denunciar post Postado Março 10, 2009 Entendi Chrnos, mas assim sempre tenho q ter o JAVASCRIPT já incluso na página é isso? será q tem como por exemplo acessar uma página qualquer da internet e mesmo que não tenho o javascript inserido nele eu consiga inserir os dados dentro da página? tambem nbão consegui identificar os campos com esse método pois ao tentar chamá-lo o delphi não compila FormItem := browser.OleObject.Document.forms.Item(I); ATt. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 10, 2009 Até onde sei, os scripts devem estar associados a página que está manipulando, ou não vai conseguir executá-los. O browser é o meu TWebBrowser; []'s Compartilhar este post Link para o post Compartilhar em outros sites
pulley 0 Denunciar post Postado Março 11, 2009 Saquei.... Vai ser bem dificil Meu projetinHo.... mas VOu tentar.... tenho q fazer uma espécie de Login Automático ... em Páginas WEB... e que possa ordenar os links e objetos do Formulário que o programa irá selecionar... mas minha maior dúvida nesse caso tb vai ser de que como usar os métodos da TAG FORM? como o SUBMIT? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Março 13, 2009 Há, uma coisa que eu esqueci de mencionar antes.... a procedure de tratamento da página que coloquei antes é chamada dentro do evento OnDocumentComplete do TWebBrownser. Quanto a suas outras dúvidas, nunca fiz nada neste sentido... o aplicativo que trabalhei enviava dados para uma página de um banco e lá ele só preenchia os campos disponibilizados na página e executava os scripts de validação e mudança de página. Mas se você olhar bem, vai ver que o laço de repetição que eu tenho na rotina de tratamento de página varre os elementos da tag FORM e manipula os itens existentes nele. []'s Compartilhar este post Link para o post Compartilhar em outros sites
pulley 0 Denunciar post Postado Março 13, 2009 Axei Muito Legal ajudou muito o probela é documentação para esse componente é muito pouca mesmo. se tivesse alguma documentação das propriedades do Objeto TAG aí iria ser legal. mas pbrigaodo Chrnos Clareou Muito... daqui sigo na Labuta. Vlws, ah mas se tiver alguma documentação aceito Tb... Compartilhar este post Link para o post Compartilhar em outros sites