📄 send.pas
字号:
sSend:=sSendName+'_NC_'+sSendCode+'_CP_'+sPassword;
IniFile.WriteString('SendCode','SendCode'+IntToStr(i+1),sSend);
end;
finally
if(iniFile<>nil) then
iniFile.Free;
end;
end;
procedure TfrmSend.SaveRecCodeInfo;
var
i :integer; //循环使用
iRecCount:integer; //发送号码的位数
sRecName :AnsiString; //号码主人名称
sRecCode :AnsiString; //号码
strPath :AnsiString; //路径
iniFile :TIniFile; //操作ini文件
sRec :AnsiString;
begin
strPath:=ExtractFilePath(Application.ExeName)+'SendSMS.ini';
try
iniFile:=TIniFile.Create(strPath);
iniFile.EraseSection('ReceiveCode');
IniFile.WriteString('ReceiveCode','RecCount',IntToStr(cmbRecCode.Items.Count));
for i:=0 to cmbRecCode.Items.Count-1 do
begin
sRecName:=PRecCodeInfo(cmbRecCode.Items.Objects[i])^.sRecName;
sRecCode:=PRecCodeInfo(cmbRecCode.Items.Objects[i])^.sRecCode;
sRec:=sRecName+'_NC_'+sRecCode;
IniFile.WriteString('ReceiveCode','RecCode'+IntToStr(i+1),sRec);
end;
finally
if(iniFile<>nil) then
iniFile.Free;
end;
end;
function TfrmSend.DeleteCR(s:string):string;
var
i:integer; //循环使用
begin
i:=Pos(#$d,s);
while i<>0 do
begin
Delete(s,i,1);
i:=Pos(#$d,s);
end;
i:=Pos(#$a,s);
while i<>0 do
begin
Delete(s,i,1);
i:=pos(#$a,s);
end;
Result:=s;
end;
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;
procedure TfrmSend.sbSaveSendCodeClick(Sender: TObject);
begin
frmSendCodeInfo:=TfrmSendCodeInfo.Create(Self);
frmSendCodeInfo.ShowModal;
frmSendCodeInfo.Free;
end;
procedure TfrmSend.sbSaveRecCodeClick(Sender: TObject);
begin
frmRecCodeInfo:=TfrmRecCodeInfo.Create(Self);
frmRecCodeInfo.ShowModal;
frmRecCodeInfo.Free;
end;
procedure TfrmSend.memSendContentChange(Sender: TObject);
begin
memSendContent.Text:=DeleteCR(memSendContent.Lines.Text);
end;
procedure TfrmSend.sbDeleteRecCodeClick(Sender: TObject);
begin
cmbRecCode.DeleteSelected;
SaveRecCodeInfo;
end;
procedure TfrmSend.sbDeleteSendCodeClick(Sender: TObject);
begin
cmbSendCode.DeleteSelected;
SaveSendCodeInfo;
end;
procedure TfrmSend.FormCreate(Sender: TObject);
begin
ReadSendCodeInfo;
ReadRecCodeInfo;
ReadMsgInfo;
end;
procedure TfrmSend.cmbRecCodeChange(Sender: TObject);
begin
if(cmbRecCode.ItemIndex<>-1) then
begin
sbSendSMS.Panels.Items[1].Text:='接收:'+PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
end;
end;
procedure TfrmSend.cmbSendCodeChange(Sender: TObject);
begin
if(cmbSendCode.ItemIndex<>-1) then
begin
sbSendSMS.Panels.Items[2].Text:='发送:'+PSendCodeInfo(cmbSendCode.Items.Objects[cmbSendCode.ItemIndex])^.sSendCode;
end;
end;
procedure TfrmSend.sbDeleteMsgClick(Sender: TObject);
begin
cmbMsgList.DeleteSelected;
SaveMsgInfo;
end;
procedure TfrmSend.sbSaveMsgClick(Sender: TObject);
var
sMsgCaption:AnsiString;
sMsgContent:AnsiString;
MsgInfo:PMsgInfo;
begin
if(Trim(cmbMsgList.Text)='') then
begin
cmbMsgList.SetFocus;
MessageBox(Handle,'输入消息标题','提示信息',MB_OK);
Exit;
end;
if(Trim(memSendContent.Text)='') then
begin
memSendContent.SetFocus;
MessageBox(Handle,'没有消息内容!','提示信息',MB_OK);
Exit;
end;
if(cmbMsgList.Items.IndexOf(Trim(cmbMsgList.Text))<>-1) then
begin
if(MessageBox(Handle,'已经有此消息!,继续加入以此标题的消息?','提示信息',MB_YESNO)=IDNO) then
Exit;
end;
sMsgCaption:=Trim(cmbMsgList.Text);
sMsgContent:=Trim(memSendContent.Text);
New(MsgInfo);
MsgInfo.sMsgCaption:=sMsgCaption;
MsgInfo.sMsgContent:=sMsgContent;
cmbMsgList.Items.AddObject(sMsgCaption,TObject(MsgInfo));
SaveMsgInfo;
end;
procedure TfrmSend.cmbMsgListChange(Sender: TObject);
begin
if(cmbMsgList.ItemIndex<>-1) then
begin
memSendContent.Lines.Clear;
memSendContent.Text:=PMsgInfo(cmbMsgList.Items.Objects[cmbMsgList.ItemIndex])^.sMsgContent;
end;
end;
procedure TfrmSend.FormDestroy(Sender: TObject);
begin
FreeData;
end;
procedure TfrmSend.lblTSClick(Sender: TObject);
begin
ShellExecute(Handle,'open','http://sms.sina.com.cn/docs/term2.html',nil,nil,SW_SHOWNORMAL);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -