用Delphi怎样给一个现有网页内的一个文本框赋值或提取文本框的文本例如:现有一个需要录入学生信息的网站,我现有一大批学生信息需要录入(几万条),但不想一个一个录入,想写个程序让它能自动录入这些信息。当学生信息录入后,网站会返遗学生的学历等信息(也在是文本框里面的),这个程序也能获取这些文本框里面的文本。
       本人尝试过模拟按键 + 剪贴板 的方法实现,但 剪贴板经常会出现 "Cannot open Clipboard" 这个错误,无法解决,请问怎样可以实现在现有网页内的一个文本框赋值或提取文本框的文本呢?  最好有代码实例,请赐教,万分感谢!!

解决方案 »

  1.   

    用delphi的浏览器控件,打开网页,这样可以调用或者执行JS脚本,具体怎么做,你自己分析网页里面的HTML
      

  2.   

    用webbrowser打开你的网站
    WebBrowser1.Navigate('http://www.baidu.com');    WebBrowser1.OleObject.Document.getElementById('abc').value:='abc';
        ShowMessage(WebBrowser1.OleObject.Document.getElementById('abc').value);
      

  3.   

    getElementById里填写的id就是网页那个输入框的id
      

  4.   

    function TForm1.Keystroke(S1:String): String;   //-----------模拟按键操作
    var
      tempStr:String;
    begin  Clipboard.AsText :=S1;  setcursorpos(pt.X ,pt.Y );
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  //-----------左击鼠标
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
      sleep(50);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  //-----------左击鼠标
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);  keybd_event(VK_CONTROL,0,0,0);
      keybd_event(86,0,0,0);
      keybd_event(86,0,KEYEVENTF_KEYUP,0);                //Ctrl + V
      keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);  setcursorpos(pt.X+30 ,pt.Y + 50);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  //-----------左击鼠标
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);  sleep(StrToint(Edit2.Text));                        //暂停  keybd_event(VK_TAB,0,0,0);
      keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);    //------------TAB
      sleep(100);  keybd_event(VK_CONTROL,0,0,0);
      keybd_event(67,0,0,0);
      keybd_event(67,0,KEYEVENTF_KEYUP,0);                //Ctrl + C
      keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
      sleep(100);  Result:=Clipboard.AsText;end;