mapaear unidade de rede....

Delphi

26/05/2003

Alguém sabe se eh possível e como se faz para mapear uma unidade de rede em uma intranet.

Estabelecer a conexão e depois desconectar...

qualquer coisa ajuda...

valeu


Brunoroot

Brunoroot

Curtidas 0

Respostas

Rafael Roni

Rafael Roni

26/05/2003

//Como compartilhar uma pasta de um outro micro e mapear com uma letra
var
err : DWord;
PServer, PSenha, PLetra : PChar;
Begin
PServer := ´\\Caminho\Caminho´ + #0;
PLetra := ´L:´;
PSenha := ´´;

ERR := WNetAddConnection ( PServer , PSenha , PLetra );

CASE ERR of
ERROR_ACCESS_DENIED : ShowMessage ( ´Acesso negado.´ );
ERROR_ALREADY_ASSIGNED : ShowMessage ( ´A letra do drive especificada já está conectada.´ );
ERROR_BAD_DEV_TYPE : ShowMessage ( ´O tipo de dispositivo e o tipo de recurso não são compatíveis.´ );
ERROR_BAD_DEVICE : ShowMessage ( ´Letra inválida.´ );
ERROR_BAD_NET_NAME : ShowMessage ( ´Nome do servidor não é válido ou não pode ser localizado.´ );
ERROR_BAD_PROFILE : ShowMessage ( ´Formato incorreto de parâmetros.´ );
ERROR_CANNOT_OPEN_PROFILE : ShowMessage ( ´Conexão permanente não disponível.´ );
ERROR_DEVICE_ALREADY_REMEMBERED : ShowMessage ( ´Uma entrada para o dispositivo especificado já está no perfil do usuário.´ );
ERROR_EXTENDED_ERROR : ShowMessage ( ´Erro de rede.´ );
ERROR_INVALID_PASSWORD : ShowMessage ( ´Senha especificada inválida.´ );
ERROR_NO_NET_OR_BAD_PATH : ShowMessage ( ´A operação não foi concluída porque a rede não foi inicializada ou caminho é inválido.´ );
ERROR_NO_NETWORK : ShowMessage ( ´A rede não está presente.´ );
else if Err > 0 then
ShowMessage (IntToStr(Err));
end;
end;


Obs.:Se ´PLetra´ for deixada em branco, o acesso será liberado sem ser criada uma unidade lógica.




//Como conectar uma unidade de rede

procedure TForm1.Button1Click(Sender: TObject);
var
NRW: TNetResource;
begin
with NRW do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := ´G:´;
lpRemoteName := ´\\servidor\c´;
lpProvider := ´´;
end;
WNetAddConnection2(NRW, ´MyPassword´, ´MyUserName´, CONNECT_UPDATE_PROFILE);
end;

// Como desconectar unidade de rede
Function DesconectaRede(Letra:Pchar;Forcada:boolean):String;
//
// Disconecta uma unidade mapeada via programação
//
// Letra = Letra atribuida a unidade
// Forcada = Força o cancelamento do mapeamento
//
begin
WNetCancelConnection2(Letra,0,Forcada);
Case GetLastError() of
1205: Result := ´Não foi possível abrir o perfil´;
1206: Result := ´Perfil do usuário não encontrado ou inválido´;
1208: Result := ´Ocorreu um Erro específico na rede´;
2138: Result := ´Rede não encontrada ou fora do ar´;
2250: Result := ´Mapeamento inválido ou não encontrado´;
2401: Result := ´Existem muitos arquivos abertos´;
else
Result := ´Unidade disconectada com sucesso´;
end;
end;


GOSTEI 0
Brunoroot

Brunoroot

26/05/2003

legal, brigadão pela dica, mas tem uma coisa que vc naum disse,

. Que unit eu preciso usar para ter acesso a esses recursos.???

ao compilar ele naum identifica esses metodos?


aguardo resposta


GOSTEI 0
POSTAR