Hola a tod@s,
después de decenas de pruebas no consigo agregar una impresora en red, utilizo el siguiente código:
Código Delphi
[-]procedure TForm1.FormActivate(Sender: TObject);
var
Err:Cardinal;
Msg:string;
NetResource: TNetResource;
begin
NetResource.dwType := RESOURCETYPE_PRINT;
NetResource.lpLocalName := pchar('USB001:');
NetResource.lpRemoteName := PCHAR('\\Mallory\CanonLBP2900');
NetResource.lpProvider := nil;
Err:= WNetAddConnection2(NetResource,
'',
'',
CONNECT_UPDATE_PROFILE);
if Err <> NO_ERROR then
begin
case Err of
ERROR_ACCESS_DENIED : Msg :='ERROR_ACCESS_DENIED :';
ERROR_ALREADY_ASSIGNED : Msg :='ERROR_ALREADY_ASSIGNED :';
ERROR_BAD_DEV_TYPE : Msg :='ERROR_BAD_DEV_TYPE :';
ERROR_BAD_DEVICE : Msg :='ERROR_BAD_DEVICE :';
ERROR_BAD_NET_NAME : Msg :='ERROR_BAD_NET_NAME :';
ERROR_BAD_PROFILE : Msg :='ERROR_BAD_PROFILE :';
ERROR_BAD_PROVIDER : Msg :='ERROR_BAD_PROVIDER :';
ERROR_BUSY : Msg :='ERROR_BUSY :';
ERROR_CANCELLED : Msg :='ERROR_CANCELLED :';
ERROR_CANNOT_OPEN_PROFILE : Msg :='ERROR_CANNOT_OPEN_PROFILE :';
ERROR_DEVICE_ALREADY_REMEMBERED : Msg :='ERROR_DEVICE_ALREADY_REMEMBERED :';
ERROR_EXTENDED_ERROR : Msg :='ERROR_EXTENDED_ERROR :';
ERROR_INVALID_PASSWORD : Msg :='ERROR_INVALID_PASSWORD :';
ERROR_NO_NET_OR_BAD_PATH : Msg :='ERROR_NO_NET_OR_BAD_PATH :';
ERROR_NO_NETWORK : Msg :='ERROR_NO_NETWORK :';
ERROR_NOT_CONNECTED : Msg :='ERROR_NOT_CONNECTED :';
end;
Raise Exception.create('Error al conectar la unidad '+ #10#13+Msg );
end;
me sale el error : Error al conectar la unidad: ERROR_BAD_DEVICE
Si sustituyo está linea:
Código Delphi
[-] NetResource.lpLocalName := pchar('USB001:');
por esta otra:
Código Delphi
[-] NetResource.lpLocalName := pchar('COM3:');
me sale el error : Error al conectar la unidad
He buscado en el foro y no he encontrado ninguna solución y necesito agregar con delphi 7 una impresora en red.
Si lo hago manualmente, buscando en red el servidor y la impresora se agrega correctamente no entiendo porque no puedo hacerlo mediante código.
Saludos