Como capturar porta da impressora de rede quot;Lpt1:(//serv

19/03/2003

0

:?: Olá pessoal,

Como capturar porta de impressora de rede usando o deplhi.
Ex.: Capturar o caminho ´//servidor/epson´ para ´Lpt1´

Preciso saber tb como finalizar captura

Desde já agradeço :wink:

Joe Amaral


Joe.amaral

Joe.amaral

Responder

Posts

19/03/2003

Josemarlourenco

A função abaixo pode conectar impressoras ou mapear drives.
Os parâmetros são os seguintes:
- sLocalName: Nome local (lpt1, lpt2,..(para impressoara) ou F:,...Z: (para drive))
- sRemoteName: URL do dispositivo (exemplo: \\computador\impressora)
- sUser e sPwl: Usuário e senha. Usar caso o dispositivo exija. Caso contrário, pode enviar em branco.

Function Connect(sLocalName, sRemoteName, sUser, sPwl: String): String;
var NRW: TNetResource;
Ret: DWORD;
begin
with NRW do begin
dwType:=RESOURCETYPE_ANY;
lpLocalName := PCHAR(TrimRight(sLocalName));
lpRemoteName := PCHAR(sRemoteName);
lpProvider:=´´;
end;
ret := WNetAddConnection2(NRW,PCHAR(sUser),PCHAR(sPwl), CONNECT_UPDATE_PROFILE);
case ret of
ERROR_ACCESS_DENIED: result := ´Acesso negado.´;
ERROR_ALREADY_ASSIGNED: result := ´Letra da unidade/nome do dispositivo ja conectado.´;
ERROR_BAD_DEV_TYPE: result := ´Recurso local e de rede incompatíveis.´;
ERROR_BAD_DEVICE: result := ´Letra da unidade/nome do dispositivo invalido.´;
ERROR_BAD_NET_NAME: result := ´Recurso não localizado.´;
ERROR_BAD_PROFILE: result := ´Formato do perfil do usuário incorreto.´;
ERROR_BAD_PROVIDER: result := ´Provedor incompatível.´;
ERROR_BUSY: result := ´Roteador ou provedor ocupado. Tente novamente.´;
ERROR_CANCELLED: result := ´Cancelado pelo usuário.´;
ERROR_CANNOT_OPEN_PROFILE:result := ´O sistema não pode abrir o perfil do usuário ou processar conexão persistente.´;
ERROR_DEVICE_ALREADY_REMEMBERED:result := ´Uma entrada para o dispositivo specificado já está em uso no perfil do usuário.´;
ERROR_EXTENDED_ERROR: result := ´Um erro de rede específico ocorreu.´;
ERROR_INVALID_PASSWORD: result := ´Senha invalida.´;
ERROR_NO_NET_OR_BAD_PATH: result := ´Um componente da rede não foi iniciado, ou o nome especifico não pode ser manipulado.´;
ERROR_NO_NETWORK: result := ´Erro de rede.´
else
result := ´Conectado.´;
end;
end;

Exemplo:
Ret := Connect(´lpt1´ , ´\\server\hp´, ´´, ´´);

Espero que ainda funcione, já que fiz para o Delphi 4 (não tenho certeza).

Josemar


Responder

19/03/2003

Dor_poa




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