Como aessar uma pasta com senha??

12/07/2004

0

Turma.. é o seguinte..

Tenho 2 programas.. um server e um cliente..

Preciso fazer o meu programa server compartilhar uma pasta com senha e preciso que o meu cliente possa ter acessoa essa pasta.. Compartilhar e colocar a senha tá beleza, mas como faço pra q o cliente procure ou me traga um arquivo dessa pasta?? Como faço issop e passo a senha??

Valeus!


Zenner

Zenner

Responder

Posts

12/07/2004

Emerson Nascimento

veja se isso dá certo (adapte para sua necessidade):

// ativar um recurso de rede, mesmo que necessite de senha
var dia, mes: string[2];
        ano: string[4];
        NRW: TNetResource;
        Retorno: cardinal;
        sMsg: string;
begin
    dia := FormatDateTime(´dd´,DateTimePicker1.Date);
    mes := FormatDateTime(´MM´,DateTimePicker1.Date);
    ano := FormatDateTime(´yyyy´,DateTimePicker1.Date);

    with NRW do
    begin
        dwType := RESOURCETYPE_DISK;
        lpLocalName := nil;
        lpRemoteName := ´\\200.154.108.38\logs\ST_´+ano+mes+dia; // aqui é a pasta desejada
        lpProvider := nil;
    end;

    Retorno := WNetAddConnection2( NRW, PChar(´senha´), PChar(´nome do usuario´), 0);

    case Retorno of
          ERROR_ACCESS_DENIED: sMsg := ´O acesso ao recurso de rede foi negado.´;
          ERROR_ALREADY_ASSIGNED: sMsg := ´O dispositivo especificado pelo lpLocalName já está conectado a um recurso de rede.´;
          ERROR_BAD_DEV_TYPE: sMsg := ´O tipo de dispositivo local e o tipo de recurso de rede são diferentes.´;
          ERROR_BAD_DEVICE: sMsg := ´O valor especificado em lpLocalName é inválido.´;
          ERROR_BAD_NET_NAME: sMsg := ´O valor especificado em lpRemoteName não é aceitável para nenhum provedor de recusro de
rede. O nome do recurso é inválido ou o recurso nomeado não pode ser localizado.´;
          ERROR_BAD_NETPATH: sMsg := ´Caminho de rede não encontrado´;
          ERROR_BAD_PROFILE: sMsg := ´O perfil de usuário está num formato incorreto.´;
          ERROR_BAD_PROVIDER: sMsg := ´O valor especificado em lpProvider difere de qualquer provedor.´;
          ERROR_BUSY: sMsg := ´O roteador ou o provedor estão ocupados (possivelmente inicializando). O chamada deve ser refeita.´;
          ERROR_CANCELLED: sMsg := ´A tentativa de fazer a conexão foi cancelada por um usuário num dos provedores de recurso da
rede ou por uma chamada ao recurso.´;
          ERROR_CANNOT_OPEN_PROFILE: sMsg := ´O sistema não pode abrir o perfil do usuário ou efetuar uma conexão permanente.´;
          ERROR_DEVICE_ALREADY_REMEMBERED: sMsg := ´Uma entrada para o dispositivo especificado em lpLocalName já está no perfil do
usuário.´;
          ERROR_DEVICE_IN_USE: sMsg := ´Dispositivo em uso por um processo ativo. Não é possível desconectar.´;
          ERROR_NOT_CONNECTED: sMsg := ´Não conectado ao recurso ou dispositivo especificado.´;
          ERROR_OPEN_FILES: sMsg := ´Os arquivos estão abertos no recurso e não foi especificado forçar a desconexão.´;
          ERROR_LOGON_FAILURE: sMsg := ´Nome ou senha de usuário incorreta.´;
          ERROR_EXTENDED_ERROR: sMsg := ´Ocorreu um erro específico de rede. Chame a função WNetGetLastError para obter a descrição
do erro.´;
          ERROR_INVALID_PASSWORD: sMsg := ´A senha informada é inválida.´;
          ERROR_NO_NET_OR_BAD_PATH: sMsg := ´Um componente da rede não foi inicializado ou o nome informado não pode ser
manipulado.´;
          ERROR_NO_NETWORK: sMsg := ´Não há rede presente.´;
          NO_ERROR: sMsg := ´Conexão efetuada´;
    else
          sMsg := ´Erro desconhecido (´+IntToStr(GetLastError())+´)´;
    end;

    if Retorno <> NO_ERROR then
        ShowMessage( sMsg );

end;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar