Ver Mensaje Individual
  #7  
Antiguo 29-09-2012
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Reputación: 21
Parsec Va por buen camino
Necesito ayuda

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,
        '', {Aquí pongo el PSW}
        '', {Aquí pongo el USR}
        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
Responder Con Cita