哪位给一个实现软件自动发布的完整例子,比如自动发布到华军、天空等等,类似那些软件发布软件一样的 ( 积分: 300 )

  • 主题发起人 主题发起人 YuZi
  • 开始时间 开始时间
Y

YuZi

Unregistered / Unconfirmed
GUEST, unregistred user!
那些软件发布工具没有注册的一般都只能发很少的网站,而且有时间限制,所以想自己写一个,但这方面的东西比较菜,所以向大侠们讨一个完整的例子,请不要贴一些表单自动提交之类的代码片断,事先说明,我不是想慢慢地去研究这个问题,只求可用的例子代码,所以不需要纯理论的实现方法、原理之类的高论,我结贴时也将无法将分数散给这些朋友。
我的Mail:biout@126.com
收到确认可用立即结帐,谢谢!
 
那些软件发布工具没有注册的一般都只能发很少的网站,而且有时间限制,所以想自己写一个,但这方面的东西比较菜,所以向大侠们讨一个完整的例子,请不要贴一些表单自动提交之类的代码片断,事先说明,我不是想慢慢地去研究这个问题,只求可用的例子代码,所以不需要纯理论的实现方法、原理之类的高论,我结贴时也将无法将分数散给这些朋友。
我的Mail:biout@126.com
收到确认可用立即结帐,谢谢!
 
我想这种技术应该是非常一般的东西了,难道真得没人愿意帮忙吗?
或者是大家发布软件都是用那些要注册的软件发布工具吗?
 
一般是在网上放好“程序.exe”,再到华军等提交,人家审察,没事 T + 1 就给你链上了。
 
用ICS控件可以搞定,下面有一段例子代码。
procedure THttpTestForm.PostButtonClick(Sender: TObject);
var
DataOut : TMemoryStream;
DataIn : TFileStream;
Buf : String;
I : Integer;
begin
DataEdit.Text:='username=' + username.Text + '&password=' + password.Text + '&realname=' + realname.Text;
DisplayMemo.Clear;
DocumentMemo.Clear;
SetButtonState(FALSE);

try
DataOut := TMemoryStream.Create;
Buf := DataEdit.Text;
if Length(Buf) > 0 then { Check if some data to post }
DataOut.Write(Buf[1], Length(Buf));
DataOut.Seek(0, soFromBeginning);

httpcli1.SendStream := DataOut;
httpcli1.Proxy := ProxyHostEdit.Text;
httpcli1.ProxyPort := ProxyPortEdit.Text;
httpcli1.RcvdStream := nil;
httpcli1.URL := URLEdit.Text;

if httpcli1.Proxy <> '' then
Display('Using proxy ''' + httpcli1.Proxy + ':' +
httpcli1.ProxyPort + '''')
else
Display('Not using proxy');

try
httpcli1.Post;
except
DataOut.Free;
Display('POST Failed !');
Display('StatusCode = ' + IntToStr(httpcli1.StatusCode));
Display('ReasonPhrase = ' + httpcli1.ReasonPhrase);
Exit;
end;
DataOut.Free;

Display('StatusCode = ' + IntToStr(httpcli1.StatusCode));

for I := 0 to httpcli1.RcvdHeader.Count - 1 do
Display('hdr>' + httpcli1.RcvdHeader.Strings);

DataIn := TFileStream.Create(httpcli1.DocName, fmOpenRead);
try
DocumentMemo.Lines.LoadFromStream(DataIn);
finally
DataIn.Free;
end;
finally
SetButtonState(TRUE);
end;

if (DocumentMemo.Lines[0]='验证成功') then
begin
lbl.Caption:='验证成功';
ShowMessage('验证成功');
end
else
begin
lbl.Caption:='验证失败';
ShowMessage('验证失败');
end;

end;
 
谢谢,但是我的要求已经说的很清楚了。。。
 
人家要完整的源代码,你们这帮人真是的!
:(
 
完整的源代码,帮你顶,其实方法更重要
 
呵呵,你自己连脑手都不想动,别人也不是奴才,给你个提示,你应该很感谢人家了
 
to power2010:怎么会有当奴才的意思呢?晕~~~~~~~
我是想希望遇到以前有写过类似程序的大侠,能直接从他已有的代码中给我个较完整的例子,而不是特意要求他为我去写,至于方法、原理我也知道一些,从以前的帖子里也能看出一些端倪,但完整的能真正实现发布软件的例子我却没见过,我没做过这种东西,并且我没有时间去深究这个问题,所以才会提出这样糟糕的要求,请大侠们见谅!
谢谢!
 
不赞成你这种做法
 
看来又要失望了。。。。
 
首先,把学习琢磨进而获得成功这种过程的忽略就是对自己智力的蔑视,从不会的东西,得到启发,继而一步一步做出想要的成品,那种成就感以及积极探索的精神才是真正可贵的。一味寻求别人的现成代码,拿来自己用,甚至不明原理道理技巧,这样的思想意识是很难让自己在编程技术上有所提高的。

我有代码,但是你这样问我反而不愿意告诉你了。首先给你个方向,所有的网页都是Html语言编写的,在Windows中,有一个叫IHTMLDocument的接口,是专门用来解析枚举分析Html文档的,如果你要提交表单,首先就要和他打交道,学会他的接口用法,很快就能写出你要的程序来了。只不过这可能需要你去找找msdn,找找相关英文文档,相信你能自己办到的。同时,祝愿你成功。最后说一句,即使你拿到别人的代码,你根本不知道里面为什么要这样写,以后当你想在写的时候也会发现自己什么都不会!不如自己学来,成为自己的东西,今后遇到任何问题,能自己独立解决,那才是令人敬佩的!
 
你时间有限,可以理解,但楼上说的也和秘对哦。
 
谢谢教诲,但是有些时候有的问题我需要的只是结果。。。
有人愿意帮忙吗?
 
怎么还没人给你把代码写出来呢,这些人真懒!我顶一哈
 
罢了,已经失望成习惯了。。。
 
其实没有什么困难的,Delphi7中早就给出了简单的做法,使用Indy控件中的 idHttp,可以完成表单的自动提交,文件的自动上传。Indy的文档中有范例。
 

Similar threads

D
回复
0
查看
765
DelphiTeacher的专栏
D
D
回复
0
查看
669
DelphiTeacher的专栏
D
D
回复
0
查看
663
DelphiTeacher的专栏
D
后退
顶部