举一个例子,例如我想登录 ,然后替我输入设定的用户名和密码,点击登录显示登录成功页面的这个过程,就是替带手工的操作,怎么样才能实现呢,让我的值可以到网页上的文本框内,急呀,大侠们帮帮我呀!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    你是指和浏览器时一样吗???
    还有,你准备使用webbrowser吗?还是通过底层Http请求
      

  2.   

    你可以用WebClient或者WebRequest和WebResponse实现具体可以Google自动投票
      

  3.   

    我看这几天总有个人做广告啊
    什么CSDNReader
    你可以参考一下
      

  4.   

    这样的很简单,你需要引用两个com组件,和webbrowser控件,而且你的IE必须是6.0以上的
    Microsoft.mshtml.dll,microsoft Html object libary.dll
    之后你就可以通过如下方法来实现:
    这是我实现的部分代码,你可以参考一下:
    private void Form1_Load(object sender, System.EventArgs e)
    {
    if (exitflag==true)
    {
    Application.Exit();
    }
    else
    {
    this.txt_pwd.Text=m_strupwd;
    this.axWebBrowser1.Navigate(this.m_strCardUserLogin,ref nullObject,ref nullObject, ref nullObject,ref nullObject);
    this.label3.Text="正在连接请稍侯…………";
    this.button4.Enabled=false;

    } /*newUrl="http://bizweb.sdeport.com"+response.GetResponseHeader("Location");
    int start = newUrl.IndexOf("(");
    int end =newUrl.IndexOf(")");
    //得到每次传递网址的一个编号
    Sid=newUrl.Substring(start,end-start+1);*/

    }private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
    {
    this.LoginPage();
    }/// <summary>
    /// 登陆内容填写/执行登陆事件
    /// </summary>
    /// <returns></returns>
    public void LoginPage()
    {
    try
     {
     mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)axWebBrowser1.Document;
     mshtml.HTMLInputElementClass textPassword = (mshtml.HTMLInputElementClass)doc.getElementById("textPassword");
     textPassword.value=this.m_strupwd;
     mshtml.HTMLInputElementClass btnLogin = (mshtml.HTMLInputElementClass)doc.getElementById("btnLogin");
     btnLogin.click();
    //flag=true;  }
    catch(Exception ex)
     {
    //flag=false;
    MsgBox("错误代码:407"+"\r\n"+ex.Message);
    exitflag=true;
     }
    if (exitflag==true)
    {
    shutdown();
    }
    }
      

  5.   


    HTTP请求无非两种,post和get,你说的这种是post请求。
    比如一个页面上有个文本框,name="aaa",那么你需要拼接一个post数据字符串为"aaa=value1",如果有多个,那么就是"aaa=value1&bbb=value2&ccc=value3",依此类推。其中需要注意的是,中文和特殊字符要做编码处理。
    然后,通过HttpWebRequest和HttpWebResponse发送接受请求,发送的目标url就是form标签中的action值。
    当然,上面说的是最最最最简单的一个例子,现实情况中,还需要考虑到cookie、验证码等其它诸多问题。
    不过,学习归学习,不用用这做坏事情。
      

  6.   

    ttgzs(一路狂奔)问得很明白, 楼主你要用什么技术实现呢?
      

  7.   

    Sorry,网页打开时只有 ttgzs 一人回的 -_-!... 从技术角度讲,登录 和 往框里填东西 是一样的, 
    楼主不是做程序的吧? 语气不像
      

  8.   

    我只是想代替手工,在一个网页上的广西框内输入内容,按键精灵可以做到,但不灵活,就这么简单,在网页上的一个文本框内输入指定的字符串,然后就完事了,不用管提交,我手动提交也行
    -----------------这个用程序完全可以做到
    不用手工参与进来!!!如果你想输入字符串然后手动点提交
    你可以用webbrowser实现如果你想程序自动输入字符串并且自动提交
    可以用WebClient或者webrequest和webresponse实现
    具体的去Google
    现成代码很多
      

  9.   

    string postdata="提交表单的内容"System.Net.HttpWebRequest request;
    System.Net.HttpWebResponse response;
    request = (HttpWebRequest)WebRequest.Create(url);
    request.ContentType = "text/html";
    request.Accept = "*/*"; //接受任意文件
    byte[] byte1 = Encoding.Default.GetBytes(postdata);
    request.ContentType = "application/x-www-form-urlencoded";
    request.KeepAlive = false;
    request.Method = "post";//post上传方式
    request.ContentLength = byte1.Length;
    response = (HttpWebResponse)request.GetResponse();
      

  10.   

     mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)axWebBrowser1.Document;
    提示无法转换呀
      

  11.   

    using System.Runtime.InteropServices;
    using System.IO;
    using System.Text;
    using System.Reflection;
    using System.Diagnostics;
    using System.Net;
    这是需要引用的名称空间
      

  12.   

    错误 1 无法将类型“System.Windows.Forms.HtmlDocument”转换为“mshtml.HTMLDocumentClass” E:\Regsystem\RegSystemSolution\RegSystemSolution\Form1.cs 38 44 RegSystemSolution
    我将你说的空间都引用进来了呀
      

  13.   

    http://www.eimhe.com/bbs/adget.php?id=379765美河学习在线——专业视频课程下载基地
      

  14.   

    ajax让那个网上的内容返回给你不就完了阿?
      

  15.   

    写JS啊,
    function aaa()
    {
    window.open("你要登陆的页面.aspx","_parent","");
    }<asp:button id="submit" runat="server" onclientclick="aaa()">页面间传值可以用session["abc"]="你要传的值"; 
    接收页面:  string bb=session["abc"].tostring().trim();
    不知道我理解的对不对
      

  16.   

    http://blog.csdn.net/cao5/articles/329204.aspx 上面有个例子。可以参考
      

  17.   

    ttgzs(一路狂奔)   能给我一份吗? [email protected]
      

  18.   

    using System;
    using System.Runtime.InteropServices;
    using System.IO;
    using System.Text;
    using System.Reflection;
    using System.Diagnostics;
    using System.Net;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Windows.Forms;
    using mshtml;
    namespace RegSystemSolution
    {
        public partial class Form1 : Form
        {
            public  mshtml.HTMLDocumentClass Tdoc;
            public Reg.clsReg Info = new Reg.clsReg();
            public string acount, pwd, mz, email, sex, Uyear, Umonth, Uday, Usheng, Ucity;
            public Form1()
            {
                InitializeComponent();
            }
            private void ShowUrl()
            {
                string url = "http://xy.mop.com/regist/L.do?a=2efe4070dcb14fb2&s=6";
                Browser.Navigate(url);
               
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                ShowUrl();        }               private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                //timer1.Enabled = true;
                mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)Browser.Document;
                mshtml.HTMLInputElementClass textPassword = (mshtml.HTMLInputElementClass)doc.getElementById("password");
                textPassword.value = "2q3434234";
            }
            private void ShowInfo()
            {
                try
                {
                    string Tname = Browser.Document.ActiveElement.Name.ToString();
                    switch (Tname)
                    {
                        case "nickname":
                            
                            Browser.Document.ActiveElement.InnerText = Info.GetYHM().ToString();
                            break;
                        case "password":
                        case "passwd2":
                            Browser.Document.ActiveElement.InnerText = Info.get_User_Pwd().ToString();
                            break;
                        case "realname":
                            Browser.Document.ActiveElement.InnerText = Info.get_User_XM().ToString();
                            break;
                        case "email":
                            Browser.Document.ActiveElement.InnerText = Info.GetEmail().ToString();
                            break;
                        case "birthdayYear":
                            //Browser.Document.ActiveElement.InnerText = Info.get_User_Year().ToString();
                            break;
                    }
                }
                catch (Exception)
                {            }
            }        private void Browser_LocationChanged(object sender, EventArgs e)
            {
                MessageBox.Show(Browser.Document.Title.ToString());
            }        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
                
            }        private void toolStrip1_Click(object sender, EventArgs e)
            {
                ShowUrl();
            }        private void Browser_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
            {
                ShowInfo();
            }    }
    }