PDA

Ver la Versión Completa : hacer que mi aplicacion se connecte a una carpeta compartida pidiendo contraseña


m8estrella83
16-02-2007, 22:21:44
Hola a todos estoy aciendo una aplicacion en donde tengo que accesar a una carpeta compartida en otra pc de mi red pero necesito que en el momento de conectarse me muestre el dialogo de usuario y contraseña.

Estoy utilizando delphi 5

marcoszorrilla
17-02-2007, 01:53:10
function TDModulo.ConectaRed: boolean;
var
RecursoRed: _NETRESOURCE;
Resultado: Word;
begin
Resultado := NO_ERROR;
Conectado := false;

with RecursoRed do
begin
dwType := RESOURCETYPE_DISK;
LpLocalName := nil;
LpRemoteName := Pchar(DirServer); // dirserver podria ser "\\maquina\carpeta"
LpProvider := nil;
end;

// --------------- nos conectamos al directorio ------------------
Resultado := WNetAddConnection2(
RecursoRed, // points to structure that specifies connection details
PChar(Contrasenia), // points to password string
PChar(Usuario), // points to user name string
CONNECT_UPDATE_PROFILE // set of bit flags that specify connection options
);

// --------------------------------------- ya que te conectaste al directorio inicias la sesion de paradox
---------------------------------
try
if not Resultado in [NO_ERROR, ERROR_ALREADY_ASSIGNED] then
raise EInvalidOperation.Create('');

with Sesion do begin
NetFileDir := DirServer + '\NET';
PrivateDir := ObtenWindowsTemp;
end;

with DataBase do begin
Params.Clear;
Params.Add('PATH=' + DirServer);
Params.Add('DEFAULT DRIVER=PARADOX');
Params.Add('ENABLE BCD=FALSE');
Connected := true;
end;
Conectado := true;
except
ShowMessage('No se ha podido establecer una sesion en red para el sistema' + #13 +
'posiblemente el servidor no este funcionando en este momento o' + #13 +
'existe un error en la configuracion, por favor verifique y vuelva a intentar.');
Conectado := False;
end;
Result := Conectado;
end;


Mira a ver si con este código te solucionas el problema.

Un Saludo.