none
Como posso preencher formularios ou mesmo login com c# RRS feed

  • Pergunta

  • Estou precisando preencher campos de uma pagina web por exemplo meu e-mail ou mesmo um formulario de cadastro utilizando c# como alicação desktop,existe alguma maneira de se fazer isso,vi isso no vb6 mais nunca vi em c#,alguém pode me ajudar?
    quinta-feira, 7 de março de 2013 17:42

Respostas

  • Para aqueles que necessitarem desta resolução segue o código, demorei mais consegui resolver sozinho kkkk.:

    using System;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Diagnostics;
    
    namespace ObtendoCodigoDePagina
    {
        public partial class Form1 : Form
        {
            string resposta = string.Empty;
            WebRequest request = WebRequest.Create("http://webmail.infonet.com.br/horde/imp/login.php");
            
            Stream data=null;
            StreamReader sr;
            WebResponse response;
            
            
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnViewCode_Click(object sender, EventArgs e)
            {
         
                //type="text" tabindex="1" name="imapuser" value=+textbox1.text+" style="direction:ltr" size="20"
                //type="password" tabindex="2" name="pass" value=+textbox2.text+" style="direction:ltr" size="20"
                
            }
    
            private void btnLogin_Click(object sender, EventArgs e)
            {
               
     resposta = resposta.Replace("<input type=\"password\" tabindex=\"2\"
     name=\"pass\" style=\"direction:ltr\" />", "<input 
    type=\"password\" tabindex=\"2\" name=\"pass\" value=" + "\"" + 
    textBox2.Text + "\" style=\"direction:ltr\" /> ");
                
    resposta = resposta.Replace("<input type=\"text\" tabindex=\"1\" 
    name=\"imapuser\" value=\"\" style=\"direction:ltr\" />", "<input 
    type=\"text\" tabindex=\"1\" name=\"imapuser\" value=" + "\"" + 
    textBox1.Text + "\" style=\"direction:ltr\" /> ");
    
                File.WriteAllText(@"C:\Login.html", resposta);
                            
                txtCodigoFonte.Text = resposta;
                sr.Close();
                data.Close();
                ProcessStartInfo sInfo = new ProcessStartInfo(@"C:\Login.html");
                Process.Start(sInfo);
                Close();
                
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                response = request.GetResponse();
                data= response.GetResponseStream();
                sr = new StreamReader(data);
                resposta = sr.ReadToEnd();
                
            }
        }
    }
    

    • Marcado como Resposta Mr. GMSOFT sexta-feira, 15 de março de 2013 13:13
    sexta-feira, 15 de março de 2013 12:30

Todas as Respostas

  • Existe sim, você pode simular o envio de teclas através da classe SendKeys, pode até mesmo simular teclas de função, enter, delete, backspace.

    Para simular teclas de comando do teclado, colocar elas entre Chaves "{".

    Segue um exemplo abaixo.

    SendKeys.Send("Leonardo{TAB}");
    SendKeys.Send("Lourenço{ENTER}");


    Leonardo Lourenço Silva

    quinta-feira, 7 de março de 2013 17:55
  • Só que desse modo eu não estaria enviando para o campo correspondente na pagina WEB em meu navegador, quero por exemplo:

    preencher login e senha enviando o metodo "POST" só que utilizando WebRequest.

    para preencher os dados desse link: http://webmail.stactus.com.br/webmail/x3/?login=1

    tentei fazer assim:

     private void EnviarDados()
    {
      try{
           string usuario = textBox1.Text;
           string senha = textBox2.Text;
    
           ASCIIEncoding codific = new ASCIIEncoding();
           string postData = "user=" + usuario + "&pass =" + senha;
           byte[] data = codific.GetBytes(postData);
           WebRequest request = WebRequest.Create("http://webmail.stactus.com.br/webmail/x3/?login=1");
           request.Method = "POST";
           request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
    
            Stream stream = request.GetRequestStream();
            stream.Write(data, 0, data.Length);
            WebResponse resposta = request.GetResponse();
            stream = resposta.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            MessageBox.Show(sr.ReadToEnd());
                   
            sr.Close();
            stream.Close();
    
    }catch (Exception ex)
                {
    
               MessageBox.Show("Erro : "+ex.Message);
                }
            }

    • Editado Mr. GMSOFT quinta-feira, 7 de março de 2013 18:24
    quinta-feira, 7 de março de 2013 18:18
  • Para aqueles que necessitarem desta resolução segue o código, demorei mais consegui resolver sozinho kkkk.:

    using System;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Diagnostics;
    
    namespace ObtendoCodigoDePagina
    {
        public partial class Form1 : Form
        {
            string resposta = string.Empty;
            WebRequest request = WebRequest.Create("http://webmail.infonet.com.br/horde/imp/login.php");
            
            Stream data=null;
            StreamReader sr;
            WebResponse response;
            
            
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnViewCode_Click(object sender, EventArgs e)
            {
         
                //type="text" tabindex="1" name="imapuser" value=+textbox1.text+" style="direction:ltr" size="20"
                //type="password" tabindex="2" name="pass" value=+textbox2.text+" style="direction:ltr" size="20"
                
            }
    
            private void btnLogin_Click(object sender, EventArgs e)
            {
               
     resposta = resposta.Replace("<input type=\"password\" tabindex=\"2\"
     name=\"pass\" style=\"direction:ltr\" />", "<input 
    type=\"password\" tabindex=\"2\" name=\"pass\" value=" + "\"" + 
    textBox2.Text + "\" style=\"direction:ltr\" /> ");
                
    resposta = resposta.Replace("<input type=\"text\" tabindex=\"1\" 
    name=\"imapuser\" value=\"\" style=\"direction:ltr\" />", "<input 
    type=\"text\" tabindex=\"1\" name=\"imapuser\" value=" + "\"" + 
    textBox1.Text + "\" style=\"direction:ltr\" /> ");
    
                File.WriteAllText(@"C:\Login.html", resposta);
                            
                txtCodigoFonte.Text = resposta;
                sr.Close();
                data.Close();
                ProcessStartInfo sInfo = new ProcessStartInfo(@"C:\Login.html");
                Process.Start(sInfo);
                Close();
                
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                response = request.GetResponse();
                data= response.GetResponseStream();
                sr = new StreamReader(data);
                resposta = sr.ReadToEnd();
                
            }
        }
    }
    

    • Marcado como Resposta Mr. GMSOFT sexta-feira, 15 de março de 2013 13:13
    sexta-feira, 15 de março de 2013 12:30