比如:一个网页。需要用户名,和密码才能登录。
怎样实现。

解决方案 »

  1.   

    2种方法
    第一种笨拙不过简单
    这是一个向留言板灌水的,wb为一个WebBrower控件:
    {先右击网页看其代码,找出各元素名字}
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      ov: OleVariant;
    begin
      wb.Navigate('http://liujw/wlxmo/gbxp/add.asp');
      Randomize;
      ov := wb.OleObject.document.all.item('username',0); {找到用户名框}
      ov.Value := IntToStr(Random(100) + 1);              {灌入值}
      ov := wb.OleObject.document.all.item('title',0);    {找到留言主题框}
      ov.Value := IntToStr(Random(100) + 1);
      ov := wb.OleObject.document.all.item('msg',0);      {找到内容信息框}
      ov.Value := IntToStr(Random(10000) + 1);
      ov := wb.OleObject.document.all.item('submsg',0);   {找到发送按钮}
      ov.Click;                                           {执行发送操作,OK} 
    end;
    这个是转载别人写的,使过了可以~
      

  2.   

    还有一种方法是直接发送数据封包,效率高,灵活~
    可以使用ADvHttp这个第三方控件,封装了70多个API,可以向服务器发送数据,获取数据~
    我用这个控件写了个自动注册ID的程序,部分代码如下:
    我写的是Xici的自动注册程序,网站是http://www.xici.net/
    我先获取了注册ID发送的数据,要发送2条
    第一条是:
    http://www.xici.net/user/reguser.asp?=UserName1234567&Password=1234567&Password1=1234567User使用户名,后面2个是2次密码,用来比对的~
    第二条是:
    http://www.xici.net/user/RealMember.asp?regname=1234567'&paper=&phone=&mob=&PayType=2&[email protected]&city=%C4%CF%BE%A9&province=%BD%AD%CB%D5&year=1980&month=7&date=12&gender=0&marital=0&occupation=%B4%FD%D2%B5&industry=%C6%E4%CB%FC%D0%D0%D2%B5&income=500&education=%D0%A1%D1%
    A7&corpname=&corpscale=0&corpweb=&accept=+%D7%A2+%B2%E1+
    其中要注意的是regname,regmail这2个地方不能重复我用1个TEdit控件来输入用户名前缀,比如'哈哈哈哈',那么程序生成的ID就是如'哈哈哈哈1',
    '哈哈哈哈2','哈哈哈哈3'......MyHttp.URL:='http://www.xici.net/user/reguser.asp?UserName='+eName.Text+IntTostr(iCount+40)+'&Password=1234567&Password1=1234567';
      MyHttp.Method:='POST';
      MyHttp.Start;
    MyHttp.URL:='http://www.xici.net/user/RealMember.asp?regname='+eName.Text+IntTostr(iCount+40)+'&paper=&phone=&mob=&PayType=2&regmail=ATTCoCoLee'+IntToStr(iCount)+'@163.net&city=%C4%CF%BE%A9&province=%BD%AD%CB%D5&year=1980&month=7&date=12&gender=0&marital=0&occupation=%B4%FD%D2%B5&industry=%C6%E4%CB%FC%D0%D0%D2%B5&income=500&education=%D0%A1%D1%A7&corpname=&corpscale=0&corpweb=&accept=+%D7%A2+%B2%E1+';
      MyHttp.Method:='POST';
      MyHttp.Start;
      

  3.   

    有没有人用
    NMHTTP控件
    给我例子呀
    谢谢!