如何用delphi调用net send ?如何用delphi 做一个信使服务 
感激

解决方案 »

  1.   

    这些是我程序的一部分function NetMessageBufferSend(servername: LPCWSTR; msgname: LPCWSTR;
      fromname: LPCWSTR; buf: Pointer; buflen: DWORD): DWORD; stdcall; external 'netapi32.dll' name 'NetMessageBufferSend';
    ........
    ........
    function sendmsg(destIP,msg:string):dword;
    var fromname: PWideChar;
        DestWideChar: PWideChar;
        MessagetextWideChar: PWideChar;
        str:string;
    begin
        try
        GetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);
        GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1);
        GetMem(fromname,20*sizeof(widechar)+1);
        StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);
        StringToWideChar(DestIP, DestWideChar, 20 * SizeOf(WideChar) + 1);
        str:='0';
        StringToWideChar(str, fromname, 20 * SizeOf(WideChar) + 1);
        Result := NetMessageBufferSend(nil, DestWideChar,fromname,MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)
        finally
        freemem(DestWideChar,0);
        freemem(MessagetextWideChar,0);
        freemem(fromname,0);
        end;
    end;
      

  2.   

    function NetSend(dest, Source, Msg: string): Longint; overload;typeTNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar;buf: PWideChar; buflen: Cardinal): Longint;stdcall;varNetMessageBufferSend: TNetMessageBufferSendFunction;SourceWideChar: PWideChar;DestWideChar: PWideChar;MessagetextWideChar: PWideChar;Handle: THandle;beginHandle := LoadLibrary('NETAPI32.DLL');if Handle = 0 thenbeginResult := GetLastError;Exit;end;@NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');if @NetMessageBufferSend = nil thenbeginResult := GetLastError;Exit;end;MessagetextWideChar := nil;SourceWideChar := nil;DestWideChar := nil;tryGetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1);StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1);if Source = '' thenResult := NetMessageBufferSend(nil, DestWideChar, nil,MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)elsebeginGetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1);StringToWideChar(Source, SourceWideChar, 20 * SizeOf(WideChar) + 1);Result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar,MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);FreeMem(SourceWideChar);end;finallyFreeMem(MessagetextWideChar);FreeLibrary(Handle);end;end;function NetSend(Dest, Msg: string): Longint; overload;beginResult := NetSend(Dest, '', Msg);end;function NetSend(Msg: string): Longint; overload;beginResult := NetSend('', '', Msg);end;// Example:procedure TForm1.Button1Click(Sender: TObject);constNERR_BASE = 2100;NERR_NameNotFound = NERR_BASE + 173;NERR_NetworkError = NERR_BASE + 36;NERR_Success = 0;varRes: Longint;sMsg: string;beginRes := NetSend('LoginName', 'Your Message...');case Res ofERROR_ACCESS_DENIED: sMsg := 'user does not have access to the requested information.';ERROR_INVALID_PARAMETER: sMsg := 'The specified parameter is invalid.';ERROR_NOT_SUPPORTED: sMsg := 'This network request is not supported.';NERR_NameNotFound: sMsg := 'The user name could not be found.';NERR_NetworkError: sMsg := 'A general failure occurred in the network hardware.';NERR_Success: sMsg := 'Message sent!';end;ShowMessage(sMsg);end;
      

  3.   

    谢谢您!
    给我一份:[email protected]
      

  4.   

    [email protected] 
    谢拉!
      

  5.   

    谢谢您!
    给我一份:[email protected]
      

  6.   

    谁给我介绍一个不错的API的书籍啊?
      

  7.   

    大狭,俺也想要
    [email protected]
      

  8.   

    var
      IP,Msg: String;WinExec(PChar('net send '+IP+Msg), SW_SHOW)
      

  9.   

    var
      IP,Msg: String;WinExec(PChar('net send '+IP+Msg), SW_SHOW)
      

  10.   

    能给我吗?
    我的地址:[email protected]
    顺便问一下,我的程序只能给局域网内发送,不知道能不能向非局域网内的其他ip发送吗?我总是没有试验成功!
    谢谢!
      

  11.   

    8错
    谢谢
    [email protected]
      

  12.   

    WinExec(PChar('net send '+对方计算机名或IP+信息), 1)
      

  13.   

    首先加入函数声明
    function
    NetMessageBufferSend(servername:PWideChar;msgname:PWideChar;
    fromname:PWideChar;buf:PWideChar;buflen:DWORD):DWORD;stdcall;external 'netapi32.dll' 
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Msg:WideString;
      Target: WideStrign;
    begin
      Msg:='你好,信使服务测试';   //信息内容
      Target:= 'computer1';      //对方计算机名称
      NetMessageBufferSend(NIL,PWidechar(Target),Nil,PWideChar(Msg),Length(String(Msg)));
    end;