如何检测net send命令发送消息是否成功?(50分)

  • 主题发起人 主题发起人 峻祁连
  • 开始时间 开始时间

峻祁连

Unregistered / Unconfirmed
GUEST, unregistred user!
我用winexec('net send .....',sw_hide)发送消息,但我怎么才能知道消息是否已经成功
发送给对方呢?

winexec的返回值大于31时表示这个命令执行成功,但并不表示消息已经发送成功啊。

还有用程序如何收到别人用net send发来的消息呢?望各位大侠指点一下?

是不是只有win2000才有信使服务啊?win98不能接收net send的消息是吗?
 
unit netSendMsg;
interface
uses SysUtils, Classes;

function ToUnicode(str:string;dest:PWideChar):integer;
function SendMsg(Toh,From,Msg:string):integer;
function NetMessageBufferSend(servername:PWideChar;
MsgName:PWideChar;
FromName:PWideChar;
Buf: PWideChar;
var BufLen:integer):integer;cdecl;
implementation
function ToUnicode(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;
WMsgText:array [0..1000] of WideChar;
MsgLen, i:integer;
begin
for i := 0 to 64 do ToName := #0;
ToUnicode(Toh,ToName);
for i := 0 to 1000 do WMsgText := #0;
ToUnicode(Msg,WMsgText);
Result:=NetMessageBufferSend(nil,ToName,nil,@WMsgText,MsgLen);
end;

end.
 
调用的时侯采用下面的函数
res := SendMsg(DestAddr,'',MessageHeader.Text+mesText.Text);
返回值
case res of
0 : frmMain.StatusLabel.Caption := '信息发送完毕';
87 : frmMain.StatusLabel.Caption := '参数是不正确的';
123 : frmMain.StatusLabel.Caption := 'sintax is incorrect';
2273 : frmMain.StatusLabel.Caption := '不能发现 '+DestAddr;
  end;
 
98下请运行一下winpopup.exe
 
to 峻祁连,
想请教你一下关于Oracle Spatial的问题,我的E_mail:lily_chyn@163.com,行不行,请回复
 
接受答案了.
 
后退
顶部