我要对局域网中的某一台机子(192.168.0.1)中的某个文件(f:\1.txt)进行读写!因为连接到局域网中的其他机子需要用户名和密码?请问这个应该如何处理?
登录远程机子的用户名和密码都已知!假设用户名:jiangli  密码:123456程序就一个MEMO控件和一个button控件,memo用来显示远程机子上的f:\1.txt文件!button用来保存在memo中所修改后的内容,保存到远程机子上!这是大致的一些代码
Tform1.creat(sender: tobject);省略
memo1.readonly:=true;
memo1.Lines.LoadFromFile('\\服务器地址\f:\1.txt');
.....省略TForm1.button1click(sender: tobject);//写入
memo1.readonly:=false;
memo1.lines.savetofile('\\服务器地址\f:\1.txt');最好能给出源代码,如果不愿意的话,给点意见也好,谢谢大家了!

解决方案 »

  1.   

    LPNETRESOURCE.dwType:=RESOURCETYPE_DISK;
    var    LPNETRESOURCE :TNetResourceA;
    begin
        LPNETRESOURCE.dwDisplayType:=RESOURCEDISPLAYTYPE_SHARE;
        LPNETRESOURCE.lpLocalName:='';
        LPNETRESOURCE.lpRemoteName:=pChar(\\服务器地址\f');
        LPNETRESOURCE.lpProvider:='';
        try
          WNetAddConnection2(LPNETRESOURCE,pChar(jiangli ),pChar(123456),CONNECT_UPDATE_PROFILE);
        except
        end;
    end;
      

  2.   

    function ConnectDrive(locDrive, netPath: String; username, userpwd: PChar;
                          showError, reconnect: Boolean): DWORD;
    var
      nRes: TNetResource;
      errCode: DWORD;
      dwFlags: DWORD; 
    begin 
      FillChar(NRes, SizeOf(NRes), #0); // Fill NetRessource with #0 to provide uninitialized values
      nRes.dwType := RESOURCETYPE_DISK; // Disk resources
      nRes.lpLocalName  := PChar(locDrive); // Set Driveletter (Example: X:)
      nRes.lpRemoteName := PChar(netPath);  // Networkpath (Example: \\Test\C)  // Check if it should be saved for use after restart and set flags
      if reconnect then
        dwFlags := CONNECT_UPDATE_PROFILE and CONNECT_INTERACTIVE 
      else 
        dwFlags := CONNECT_INTERACTIVE;   errCode := WNetAddConnection3(Form1.Handle, nRes, username, userpwd, dwFlags);  if (errCode <> NO_ERROR) and (showError) then
      begin 
        Application.MessageBox(PChar('An error occured while connecting:' + #13#10 + 
          SysErrorMessage(GetLastError)), 'Error while connecting!', MB_OK);
      end; 
      Result := errCode; // NO_ERROR
    end;function DisconnectNetDrive(locDrive: string; showError,force,save: Boolean): DWORD;
    var 
      dwFlags: DWORD; 
      errCode: DWORD; 
    begin 
      if save then  // Set dwFlags, if necessary
        dwFlags := CONNECT_UPDATE_PROFILE
      else
        dwFlags := 0;  errCode := WNetCancelConnection2(PChar(locDrive), dwFlags, force);  if (errCode <> NO_ERROR) and (showError) then
      begin 
        Application.MessageBox(PChar('An error occured while disconnecting:' + #13#10 + SysErrorMessage(GetLastError)), 'Error while disconnecting', MB_OK);
      end; 
      Result := errCode; // NO_ERROR
    end; procedure TForm1.Button1Click(Sender: TObject);
    begin
      ConnectDrive('Y:', '\\ServerName\d', 'username', 'password', true, true);
      // 注:Local Drive一定要設定為現在没有用的名子
      Memo1.Lines.LoadFromFile('Y:\temp\temp1.txt');
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      DisconnectNetDrive('Y:', true, true, true);
    end;{注:按「Button1」後、用文件Browser会看到在自己的機器里被建了一個新的Drive
        按「Button2」後、新建的Drive被削除}
      

  3.   

    : cronuz(cronus) ( 的应该不错