关于net send !

chinaren100 2003-12-16 04:53:58
NetMessageBufferSend如何实现发送群体信息,就象是在dos提示符下输入net send /modain:域 一样的效果。注意:我不要调用dos 的效果!那样我也会,呵呵 !最好给点代码!我的油箱是:chinaren100@mail.china.com !谢谢大家!
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangwangz 2003-12-17
  • 打赏
  • 举报
回复
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;
xiangwangz 2003-12-17
  • 打赏
  • 举报
回复
unit Unit2;

interface
uses sysutils,classes;


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);

end;

end.
chinaren100 2003-12-17
  • 打赏
  • 举报
回复
ai
chinaren100 2003-12-16
  • 打赏
  • 举报
回复
: angle097113(深思不解) ,谢谢,我看了,但对我没帮助,他的方法我也会,我要的是发送群体信息!!!!!!!!!!!!! chieftech(我爱GF,我爱乐锦!) 我明说了不要dos 调用了!呵呵
chieftech 2003-12-16
  • 打赏
  • 举报
回复
shellexec
angle097113 2003-12-16
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2559/2559253.xml?temp=.2113001
看看这个帖子对于你有没有什么帮助啊

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧