在delphi中知道对方IP怎么用netsend发送消息

解决方案 »

  1.   

    假设Edit1里是IP地址或计算机名,Edit2里放的是要发送的消息var
     CmdLine: string;
    begin
     CmdLine:='cmd /c "net send '+Edit1.Text+' '+Edit2.Text+'"';
     winexec(pchar(CmdLine),SW_HIDE);
    end;
      

  2.   

    使用winexec('cmd /c "net send IP地址 信息内容"')来完成。
      

  3.   

    www.google.com
    搜索netbuffersend
      

  4.   

    错了,是NetMessageBufferSend,sorry
      

  5.   

    FUNCTION NetSend(dest, Source, Msg: STRING): Longint; overload;
    TYPE
      TNetMessageBufferSendFunction = FUNCTION(servername, msgname, fromname: PWideChar;
        buf: PWideChar; buflen: Cardinal): Longint;
      stdcall;
    VAR
      NetMessageBufferSend: TNetMessageBufferSendFunction;
      SourceWideChar: PWideChar;
      DestWideChar: PWideChar;
      MessagetextWideChar: PWideChar;
      Handle: THandle;
    BEGIN
      Handle := LoadLibrary('NETAPI32.DLL');
      IF Handle = 0 THEN
      BEGIN
        Result := GetLastError;
        Exit;
      END;
      @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
      IF @NetMessageBufferSend = NIL THEN
      BEGIN
        Result := GetLastError;
        Exit;
      END;  MessagetextWideChar := NIL;
      SourceWideChar := NIL;
      DestWideChar := NIL;  TRY
        GetMem(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 = '' THEN
          Result := NetMessageBufferSend(NIL, DestWideChar, NIL,
            MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)
        ELSE
        BEGIN
          GetMem(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;
      FINALLY
        FreeMem(MessagetextWideChar);
        FreeLibrary(Handle);
      END;
    END;FUNCTION NetSend(Dest, Msg: STRING): Longint; overload;
    BEGIN
      Result := NetSend(Dest, '', Msg);
    END;FUNCTION NetSend(Msg: STRING): Longint; overload;
    BEGIN
      Result := NetSend('', '', Msg);
    END;
      

  6.   


    ===========demo===========
    =============================PROCEDURE TForm1.BitBtn1Click(Sender: TObject);
    CONST
      NERR_BASE = 2100;
      NERR_NameNotFound = NERR_BASE + 173;
      NERR_NetworkError = NERR_BASE + 36;
      NERR_Success = 0;
    VAR
      Res: Longint;
      sMsg, MSGSTR, LoginName, From_name: STRING;
    BEGIN
      TRY
        LoginName := Trim(ComboBox1.Text);
        From_name := Trim(Edit1.Text);
        MSGSTR := Memo1.Text;
        IF LoginName = '' THEN
        BEGIN
          ShowMessage('发送地未知!');
          ComboBox1.SetFocus;
          exit;
        END;
        IF Trim(MSGSTR) = '' THEN
        BEGIN
          ShowMessage('请给出发送信息!');
          Memo1.SetFocus;
          exit;
        END;
        Res := NetSend(LoginName, From_name, MSGSTR);
        CASE Res OF
          ERROR_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:
            BEGIN
              sMsg := '发送成功!'; //'Message sent!'
              IF update_flag THEN
              BEGIN
                inifile.WriteString('Users', ComboBox1.Text, '');
              END;
              Form1.Close;
            END;
        END;
      //ShowMessage(sMsg);
        StatusBar1.Panels[0].Text := sMsg;
      EXCEPT
        ShowMessage('发送不成功!');
      END;END;
      

  7.   

    部分资料来自猛料
    demo你可以根据需要自己改一下