分享

IdIcmpClient;NetMessageBufferSend

 独孤求财 2012-03-14

IdIcmpClient;NetMessageBufferSend

时间:2011-5-30来源:yang 作者: peng点击: 65次

//用ping测试主机是否存在
function PingAlive(const AHost:string;const ATimeout: Cardinal = 1000):boolean;
  var  
      IdIcmpClient:   TIdIcmpClient;  
begin  
  try  
    IdIcmpClient := TIdIcmpClient.Create(nil);
    IdIcmpClient.ReceiveTimeout := ATimeout;   //设定回应的等候时间
    IdIcmpClient.Host := AHost;
    Result := true;
    IdIcmpClient.Ping;
    Result := (IdIcmpClient.ReplyStatus.ReplyStatusType = rsEcho);  
  finally
    FreeAndNil(IdIcmpClient);  
  end;
end;

//win2000/XP 信使服务
function  NetMessageBufferSend(servername:PWideChar;msgname:PWideChar;
  fromname:PWideChar;buf:PWideChar;buflen:DWORD):DWORD;stdcall;
  external ‘netapi32.dll‘ name   ‘NetMessageBufferSend‘;
function ToUnicode(str:string;dest:PWideChar):integer;
var
  len:integer;
begin
  StringToWideChar(str,dest,len);
  Result:=len;
end;
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[i] := #0;
  ToUnicode(Toh,ToName);
  for i := 0 to 1000 do WMsgText[i] := #0;
  ToUnicode(Msg,WMsgText);
  Result:=NetMessageBufferSend(nil,ToName,nil,@WMsgText,MsgLen);
end;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多