急,如何通过调用网络资源编写发送手机短消息的软件?(100分)

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
我工作的时候整天都可以上网,跟朋友联系一般都用手机短讯,我一般都登陆到
http://sms.sina.com.cn/cgi-bin/sms/myaddr.cgi 上,然后输入自己的手机号码以及在
新浪网上申请的密码,然后就可以给自己的饿朋友发送短讯了,我想自己编写一个软件,
通过这个软件,来实现新浪网上的那个发送手机短讯的功能(本质上,还是要调用新浪网上的
那部分资源),哪位朋友能提供技术帮助的,因为这会给我带来很大的方便,
等我把这个软件编写好了,哪位网友需要的,可以赠送该软件及其源代码。
 
我在网上下载过一个软件叫:手机短信风暴-手机短信群发系统,就是利用在新浪网上
的手机注册的号码来群发短信的,该软件的作者是扬世英。邮箱是:tt9@163.net ,不知道
他是怎么实现的。
 
真遗憾,这个问题,我等了一天了,还是没有人帮帮我,我估计这和CGI编程有关,只是这
方面我不是很了解。那位仁兄能够给点建议。
 
wbSendSMS: TWebBrowser;

procedure TfrmSend.btnSendClick(Sender: TObject);
var
ovTargetFrameName:OleVariant;
ovPostData :OleVariant;
ovFlags :OleVariant;
ovHeads :OleVariant;
begin
if(cmbRecCode.ItemIndex=-1) then
begin
MessageBox(Handle,'选择接收的号码!','提示信息',MB_OK);
Exit;
end;
if(CheckCode(PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode)=false) then
begin
MessageBox(Handle,'接收号码不正确!','提示信息',MB_OK);
Exit;
end;
if(cmbSendCode.ItemIndex=-1) then
begin
MessageBox(Handle,'选择发送的号码!','提示信息',MB_OK);
Exit;
end;
if(CheckCode(PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode)=false) then
begin
MessageBox(Handle,'发送号码不正确!','提示信息',MB_OK);
Exit;
end;
if(Trim(memSendContent.Text)='') then
begin
MessageBox(Handle,'输入发送的内容!','提示信息',MB_OK);
memSendContent.SetFocus;
Exit;
end;
iSendSMS:=0;
ovTargetFrameName:=0;
ovPostData:=0;
ovHeads:=0;
ovFlags:=0;
wbSendSMS.Navigate('http://sms.sina.com.cn/docs/send.html',
ovFlags,ovTargetFrameName,ovPostData,ovHeads);
sbSendSMS.Panels.Items[0].Text:='正在发送...';
end;

procedure TfrmSend.btnCancelClick(Sender: TObject);
begin
wbSendSMS.Stop;
//Close;
end;

procedure TfrmSend.wbSendSMSDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
i :integer; //循环使用
iInputCount:integer; //计算<Input> 的次数
ovDoc :OleVariant; //取得网页的内容
sSendCode :AnsiString; //发送手机号码
sPassword :AnsiString; //发送短消息的密码
sRecCode :AnsiString; //接收代码
begin
case iSendSMS of
0:
begin
Inc(iSendSMS);
ovDoc:=(Sender as TWebBrowser).Document;
iInputCount:=0;
for i:=0 To ovDoc.All.Length-1 do
begin
if (ovDoc.All.Item(i).tagName = 'TEXTAREA')and //一定大写
(ovDoc.All.Item(i).name='msg')then //大小写与原文一致
begin
ovDoc.All.Item(i).Value:=DeleteCR(memSendContent.Lines.Text);
Inc(iInputCount);
end;
if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
(ovDoc.All.Item(i).type='text')and //大小写与原文一致
(ovDoc.All.Item(i).Name='mob1')then
begin
sRecCode:=PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
ovDoc.All.Item(i).Value:=Trim(sRecCode);
Inc(iInputCount);
end;
if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
(ovDoc.All.Item(i).type='text')and //大小写与原文一致
(ovdoc.All.Item(i).Name='user')then
begin
sSendCode:=PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode;
ovDoc.All.Item(i).Value:=Trim(sSendCode);
Inc(iInputCount);
end;
if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
(ovDoc.All.Item(i).type='password')and //大小写与原文一致
(ovDoc.All.Item(i).Name='passwd')then
begin
sPassword:=PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sPassword;
ovDoc.All.Item(i).Value:=Trim(sPassword);
Inc(iInputCount);
end;
if (ovDoc.All.Item(i).tagName = 'INPUT')and //一定大写
(ovDoc.All.Item(i).type='submit')and //大小写与原文一致
(ovDoc.All.Item(i).value=' 发送 ')then
begin
if iInputCount=4 then
ovDoc.All.Item(i).Click;
Inc(iInputCount);
end;
end;
end;
1:
begin
ovDoc:=(Sender as TWebBrowser).Document;
Inc(iSendSMS);
if(Pos('发送成功',ovDoc.All.item.innerhtml)<>0) then
sbSendSMS.Panels.Items[0].Text:='发送成功'
else
sbSendSMS.Panels.Items[0].Text:='发送失败';
end;
end;
end;
 
向yanghai0437大虾学习呀
 
但是新浪的好象不支持移动和连通的互发,网易的可以。:yanghai0437知道怎么做网易的
吗?
 
yanghai0437朋友,我相信您提供的代码肯定是正确的,但是我编译的时候,遇到
1. if(cmbRecCode.ItemIndex=-1) then 这句话时不能通过,好象是因为cmbRecCode
没有定义;
2. procedure TfrmSend.wbSendSMSDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);这个函数是自定义的函数,还是某个控件的事件。
3 .sbSendSMS 是什么控件;
4. 要在uses里是不是要加些什么。
------------------------------------------------------------
yanghai0437朋友,您能对您提供的代码稍稍给我们分析一下吗,这段代码真的对我很有用。
 
yanghai0437:
能给我一份源代码么?谢谢!icyblues@163.com
 
yanghai0437大虾,这么多朋友向您请教,麻烦您再给点提示好吗,如果成功了,100分全给你。
谢谢啦!
 
其实重要的应该是研究 网站 CGI 的参数,能过程序生成URL就可以了
 
pyh_jerry朋友,您的建议不错,但我现在是想编这个软件,首先最急需的是正确的源代码,
以后才可以根据这些代码分析,并查阅相关资料,如果您在这方面有所建树的话,能不能就我
提的这个问题,给点实质性的帮助。
 
给出一个URL,分析一下就可以,我原来就写过一PHP脚本,可以以链接方式实现软件下载,
我想大概做手机短消息也应该是这个道理
你能不能把你发送消息后的URL贴出来,让大家一起分析一下,或许就可行
 
其实这个问题主要是分析网页的内容就行了,具体可参考
http://www.playicq.com/dispdoc.php?t=27&id=2664
带源码的。
 
http://www.playicq.com/dispdoc.php?t=27&id=2664里提供的代码我分析过,好象有问题啊。
 
我想你得跟新浪联系协商
我做过短信程序,移动网关不是随便对你开放的
 
我也很想了解是怎么实现的!
 

Similar threads

回复
0
查看
862
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部