软件登录软件 DIY 
    Http 协议是 Web 服务的主要协议之一,网页的浏览和网站动态数据的提交就是由这个协议实现的。实现的过程是通过 Http 会话,向 Web 服务器进行数据请求(读取、存储等)。
    我们编程中常用的有 POST 和 GET 数据请求。POST 可以用于把用户输入的数据以数据流的方式传给 CGI(ASP、JSP) 程序,CGI 再通过 Contect-Length 环境变量来取相应长度的数据流信息。如果数据提交成功,服务器将产生正常应答,其头部信息为:
  HTTP/1.1 200 OK
    网站登录是通过用户填写登录信息,由 CGI 程序向 Web 服务器提交来实现的。以 Sohu 网站的免费网站提交为例:首先由 Sohu 主页面进入网站登录界面,选择网站的登录类别,然后填写网站的信息:这个过程由 2 步组成,第一步填写网站的名称和网站地址(http://…),第二步填写一些详细信息,然后就可以提交了。真正实现数据保存的是第二步,其核心网页代码(简化)为:
    <form name="form1" method="POST"
        action="/regurl/regform.asp?Step=Create&Class=C016015005002
        &sitename=网站名称&url=http://网站地址"
        οnsubmit="return checkform()">
      <input type="hidden" name="Step" value="Create">
      网站描述:
      <textarea name="Description" rows="2" cols="60"></textarea>
      ……
    </form>
    (注:C016015005002 因选择的网站类别而不同)
    我们的程序就是通过利用经过 Delphi 完美封装的 TNMHttp 组件,模拟网页中的按钮 Submit 提交,来实现用程序代码进行网站的快速、准确注册。
    本例中,笔者的程序可以圆满的完成网站“十万个为什么”(http://helps100000.yeah.net)的登录,登录在“首页>公司企业>计算机与互联网>计算机软件>数据库”类目下。程序的界面组件为:1 个 WebBrowser 组件,3 个 Memo 组件,分别用来显示登录后的反馈页面和一些提示信息。1 个 NMHTTP1 组件,是本程序的核心组件。还有一个 Button 按钮。
    其实程序的核心代码也就一句:
      NMHTTP1.Post('http://db.sohu.com/regurl/regform.asp?
        Step=Create&Class=C016015005002&sitename=十万个为什么
        &url=http://helps1000000.yeah.net','PostData.txt');
    其中,Post 方法有 2 个参数,第 1 个参数代表 form 表单的 action 部分,第 2 个参数是 <input> 标签中各参数的取值组成的字符串。由于 NMHTTP1 的 OutputFileMode 属性被设置为 true,所以第 2 个参数的字符串被放在一个外部文本文件 PostData.txt 中,PostData.txt 的内容为(不分行):
    Description=探讨计算机技术收集应用技巧&Keywords=计算机技巧
    &district=山系&city=西安&Contact=张庆&EMail=zhangking@263.net&memo=no
该字符串是通过分析网页代码得到的。
    程序运行后,点击“网站注册”按钮,如果机器已经连接到 Internet 上,就会像在网页中进行网站注册一样,很快在 WebBrowser1 中返回“注册成功”或“错误:该网站已经注册”页面。
    本程序在 Windows98、IE5.0、Delphi5.0 环境下调式成功。我们完全可以在此基础上,运用多线程等技术,做成一个类似“登录骑兵”一类的实用软件。
//程序的完整源代码如下:
  unit Unit1;
  interface
  uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OleCtrls, SHDocVw, Psock, NMHttp, ExtCtrls;
  type
  TForm1 = class(TForm)
  NMHTTP1: TNMHTTP;
  Panel1: TPanel;
  Button1: TButton;
  Memo3: TMemo;
  Memo2: TMemo;
  Memo1: TMemo;
  Panel2: TPanel;
  WebBrowser1: TWebBrowser;
  procedure Button1Click(Sender: TObject);
  procedure NMHTTP1Success(Cmd: CmdType);
  procedure NMHTTP1Failure(Cmd: CmdType);
  procedure FormCreate(Sender: TObject);
  private { Private declarations }
  public { Public declarations }
  end;
  var
  Form1: TForm1;
  implementation
  {$R *.DFM}
  procedure TForm1.FormCreate(Sender: TObject);
  begin
  WebBrowser1.Navigate('about:blank');
  end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
  With NMHTTP1 do
  Begin
  InputFileMode :=False;
  OutputFileMode :=True;
  ReportLevel :=Status_Basic;
  end;
  With NMHTTP1.HeaderInfo do
  begin
  Cookie :='';
  LocalMailAddress :='';
  LocalProgram :='';
  Referer :='';
  UserID :='';
  Password :='';
  try
  NMHTTP1.Post('http://db.sohu.com/regurl/regform.asp?
  Step=Create&Class=C016015005002&sitename=十万个为什么
  &url=http://helps1000000.yeah.net','PostData.txt');
  except
  showMessage(' Error! ');
  end;
  End;
  end;

procedure TForm1.NMHTTP1Success(Cmd: CmdType);
  begin
  Case Cmd of
  CmdPOST:
  begin
  Memo1.Text := NMHTTP1.Header;
  Memo2.Text := NMHTTP1.Body;
  WebBrowser1.OleObject.document.body.innerHTML :=NMHTTP1.Body;
  Memo3.Lines.Add('HTTP POST Successful');
  end;
  end;
  end;

procedure TForm1.NMHTTP1Failure(Cmd: CmdType);
  begin
  Memo1.Text := NMHTTP1.Header;
  Memo2.Text := NMHTTP1.Body;
  case Cmd of
  CmdPOST:
  Memo3.Lines.Add('HTTP Post Failed');
  end;
  end;
  end.
    ------------------------------------------------
    张庆(西安 Net-e 软件系统工程公司)
    Email: zhangking@263.net
    http://soft.why100000.com

软件登录软件 DIY相关推荐

  1. 【开发环境】安装 Visual Studio Community 2013 版本 ( 安装软件 | 通过 GitHub 账号登录软件 | 启动软件 | 安装中文语言包 )

    文章目录 一.安装 Visual Studio Community 2013 二.登录并启动 Visual Studio Community 2013 三.安装 Visual Studio Commu ...

  2. putty保存用户名和密码_使用PuTTY远程登录软件登录 Linux 实例

    本文以 PuTTY 软件为例,介绍如何在 Windows 系统的本地电脑中使用远程登录软件登录 Linux 实例. 使用密码登录 下载 Windows 远程登录软件,即 PuTTY. PuTTY 的获 ...

  3. 【T3】win10系统成功注册加密锁后,登录软件依然提示“产品未找到合法的license授权”

    问题描述: win10环境下,加密锁已经提示注册成功, 但是登录系统管理点击注册, 提示"产品未找到合法的license授权". 并且全盘搜索,找不到.cjt文件. 问题解决: 查 ...

  4. 因测试和登录软件微信被封,淘客必须注意,微信封号原则是什么?

    微信封号的原则是什么? 微信封号不是随便乱封,它既遵循机器算法,也关注用户的实际体验. 一旦同时满足以下两个条件: 1.系统检测到异常操作; ·2.用户投诉举报.即被封号. 意思是,必须同时满足两个条 ...

  5. 【T+】删除/取消畅捷通T+软件登录界面右上角的授权单位等联系信息

    [本文是针对小编自己的需求进行整理的,并且在小编的积极努力下将需求进行解决.如对您有帮助,请点个赞.加个关注,这样会大大提高小编的积极性.] [问题需求] 使用畅捷通T+本地安装产品,并激活后, 软件 ...

  6. sql server登陆失败连接失败_管家婆软件登录时提示“连接失败,请输入正确的服务器名”解决方法...

    一.常规检查 当软件出现无法登录软件问题时,请先检查电脑的右下角任务栏位置管家婆所需的3个 服务器是否均已运行,如果是网络版请先到服务器端去确认.  管家婆服务器,如图  管家婆套接字服务器(辉煌 ...

  7. 远程登录软件S-Term简介

    S-Term (也写作Sterm)是一个能在 Windows 平台下运行的远程登陆软件,支持 Telnet.SSH(包括SSH1 和 SSH2) 协议连接,支持 Zmodem协议上载文件,还支持 Ac ...

  8. ftp,ftp软件登录不上

    在使用ftp软件过程中,经常会出现登录不了问题,今天小编就教大家如何解决ftp软件登录不上问题.具体操作方法如下: IIS7服务器管理工具可以批量管理.定时上传下载.同步操作.数据备份.到期提醒.自动 ...

  9. 登录医疗机构无法连接到远程服务器,敬业签桌面便签软件登录提示“无法连接到远程服务器”解决办法...

    原标题:敬业签桌面便签软件登录提示"无法连接到远程服务器"解决办法 无法连接到远程服务器 部分Win7/WinXP用户安装敬业签桌面便签软件后,登录敬业签PC端桌面便签软件账号时提 ...

最新文章

  1. Windows CE 6.0正式发布 源代码100%开放
  2. 如何做会员排名 按照投稿文章数量
  3. educoder SML程序设计题线下编译环境搭建
  4. 小程序之旅——第六站(模板首页)
  5. Python sqlalchemy orm 多外键关联
  6. win10系统的服务器在哪里设置密码,window10怎么设置密码
  7. android文件读取工具类,Android 下读取Assets Properties操作封装工具类
  8. 高阶多项式合并同类项程序c语言,c语言实现两多项式相乘并排序合并同类项.doc...
  9. 成功的本质是——做减法
  10. FISCO BCOS区块链搭建说明(第一篇)
  11. 空间数据挖掘与空间大数据的探索与思考(三)
  12. hive 查询表Wrong FS: hdfs://node1/user/hive/warehouse/test1.db, expected: hdfs://node1.zjn.cn:8020/
  13. MySQL高级篇——锁的概述与案例应用
  14. perl学习笔记16 z
  15. Django REST Framework中的Serializer relations
  16. Premiere 快捷键
  17. 颜色转换rgb24 to yuv420
  18. VueJs中的reactive函数
  19. InnerHTML、InnerText、outerHTML的用法与区别
  20. 架构进化的本质——用一个例子讲清楚

热门文章

  1. 航测无人机las点云数据生成DEM
  2. HTML+CSS错题整理
  3. 明明输给了 SpaceX,OneWeb 为什么还能拿到英国政府的钱?
  4. 冰蝎Behinder_v4.0
  5. 我的无线宽带由器 TP-LINK TL-WR841N如何设置限
  6. turtle更多函数 难度0
  7. 打破“中规中矩”,手机QQ何以萌翻众人?
  8. ldquo;未来middot;互联网rdquo;论坛:演讲环节中规中矩,媒体访谈出现ldquo;笑话rdquo;
  9. 服装店铺装修有哪些窍门?做好这3点,顾客主动上门
  10. C语言输出所有水仙花数字