var
Cancel:boolean; //标志是否按了取消
CSNum:integer; //发送的消息条数
myinifile:tinifile;
//循环发送
procedure RandomSend();
begin
with Form1 do
begin
if Ran.Checked then
begin
Randomize();
ManMsg.ItemIndex:=Random(ManMsg.Count);
ManMsg.OnClick(Form1);
Application.ProcessMessages;
end;
end;
end;
//加载消息内容
procedure LoadMsgFile();
var
TempNum:integer;
begin
For TempNum:=1 to 20 do
begin
with Form1 do
begin
ManMsg.Items.Add(MsgText[TempNum]);
end;
end;
end;
//显示提示信息
procedure ShowMsg(gres:integer);
begin
with Form1 do
begin
speedbutton1.Enabled:=True;
ShowCS.Caption:='';
speedbutton2.Enabled:=False;
if gres=0 then
begin
ts.Font.Color:=clblue;
TS.text:=' '+inttostr(CSNum)+' 条消息发送操作成功完成!'
end
else if gres=87 then
begin
ts.Font.Color:=clred;
TS.Text:=' 参数错误,发送失败!';
end
else if gres=2273 then
begin
ts.Font.Color:=clred;
TS.Text:=' 无法连接对方,可能对方不在线!';
end
else
begin
ts.Font.Color:=clred;
TS.text :=' 消息发送失败,未知错误!';
Beep();
end;
end;
end;
//格式化发送内容
Function FormatText(Temp:string):string;
var
TextLen:integer;
TempNum,TempLine:integer;
TempStr,TempHead:string;
begin
TextLen:=50;
TempLine:=(length(Temp) div TextLen)+1;
For TempNum:=1 to TempLine do
begin
if (TempStr='') then
begin
TempStr:=copy(Temp,1,TextLen)+#13+#10+#13+#10;
end
else
begin
TempStr:=TempStr+copy(Temp,(TextLen*(TempNum-1))+1,TextLen)+#13+#10+#13+#10;
end;
end;
TempHead:=#13+#10'---------------------------------------------------------------------------'+#13+#10+
'>>>> 请仔细阅读下面发给您的消息,谢谢合作! <<<<'+#13+#10+
'---------------------------------------------------------------------------'+#13+#10+#13+#10+#13+#10#13+#10#13+#10;
TempStr:=TempHead+TempStr;
Result:=TempStr;
end;
//发送消息
procedure USendMsg();
var
res:integer;
begin
with Form1 do
begin
speedbutton1.Enabled:=False;
speedbutton2.Enabled:=True;
TS.text :=' 正在发送消息给对方,请稍候......';
Application.ProcessMessages;
if Trim(FromName.Text)='' then
FromName.Text:=' wudijianpu ';
if Trim(Msg.Text)='' then
Msg.Text:=' 您好,wudijianpu请你联系管理员!';
res:=SendMsg(IP.Text,Trim(FromName.Text+'快传'),FormatText(Msg.Text));
Application.ProcessMessages;
ShowMsg(res);
end;
end;
function A(str:string;dest:PWideChar):integer; //将ASCII码转为Uncodes码
Function SendMsg(Toh,From,Msg:string):integer;
Function NetMessageBufferSend(ServerName:pointer;MsgName:pointer;FromName:pointer;Buf:pointer;var BufLen:integer):integer;cdecl;
implementation
function A(str:string;dest:PWideChar):integer;
var
len:integer;
begin
stringtowidechar(str,dest,len);
result:=len;
end;
Function NetMessageBufferSend;external 'netapi32.dll' name 'NetMessageBufferSend';
Function SendMsg(Toh,From,Msg:string):integer;
var
ToName:array[0..64] of widechar; //显示的对方名称
FromName:array[0..64] of widechar; //显示的发送方名称
MsgLen,i:integer;
WMsgText:array[0..1000] of widechar; //发送的消息
begin
for i:=0 to 64 do ToName[i]:=#0;
A(Toh,ToName);
for i:=0 to 64 do FromName[i]:=#0;
A(From,FromName);
for i:=0 to 1000 do WMsgText[i]:=#0;
A(Msg,WMsgText);
result:=NetMessageBufferSend(nil,@ToName,@FromName,@WMsgText,MsgLen);