如何用shellexecute這個函數達到這種效果呀,.....,
就我建一個窗口,在上面填入別人的電腦名或者IP,填入信息,點發送就用net send命令發送出去。多謝幫忙。

解决方案 »

  1.   

    直接使用API发吧
    ====================
    unit Dummy;interface
       function NetSend(Dest, Source, Msg: string) : Longint;
    const
    NERR_Success=0;
    NERR_BASE       =2100;
    NERR_NameNotFound       =(NERR_BASE+173);
    NERR_NetworkError       =(NERR_BASE+36);
    {
     NERR_Success:caption:='NERR_Success';
     ERROR_ACCESS_DENIED: ShowMessage('The user does not have access to the requested information.');
     ERROR_INVALID_PARAMETER : ShowMessage('The specified parameter is invalid.');
     ERROR_NOT_SUPPORTED : ShowMessage('This network request is not supported.');
     NERR_NameNotFound : ShowMessage('The user name could not be found.');
     NERR_NetworkError : ShowMessage('A general failure occurred in the network hardware.');
    }
    implementation
    uses
       windows;
    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 { NetSend }
      Handle := LoadLibrary('NETAPI32.DLL');
      if Handle=0 then
      begin
        Result := GetLastError;
        Exit;
      end; { Handle=0 }
      @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
      if @NetMessageBufferSend=nil then
      begin
        Result := GetLastError;
        Exit;
      end; { @NetMessageBufferSend=nil }
      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; { not (Source='') }  finally
        FreeMem(MessagetextWideChar);
        FreeLibrary(Handle);
      end; { try }
    end; { NetSend }function NetSend(Dest, Msg: string) : Longint; overload;
    begin { NetSend }
      Result := NetSend(Dest, '', Msg);
    end; { NetSend }function NetSend(Msg: string) : Longint; overload;
    begin { NetSend }
      Result := NetSend('', '', Msg);
    end; { NetSend }//begin
    //  NetSend('exchage', 'Hello, Mike');
    end.
      

  2.   

    还是建议直接API的http://lysoft.7u7.net
      

  3.   

    ShellExecute(Self.Handle, 'OPEN', 'net', 'send 192.168.0.1 ''这样应该可以了吧!''', SW_SHOW);
      

  4.   

    winexec(pchar('net send 172.18.93.150 发送内容'),0);
    开始的时候USE 一下 WINDOWS
    NET SEND在98下不能运行要打开WINPUPO.EXE