Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Redes (https://www.clubdelphi.com/foros/forumdisplay.php?f=37)
-   -   Compartir Impresora en red con usuarios de un PC (https://www.clubdelphi.com/foros/showthread.php?t=80251)

Parsec 12-09-2012 22:20:49

Compartir Impresora en red con usuarios de un PC
 
Buenas,

mi problema es que tengo una impresora conectada a un PC y compartida. En el PC donde está conectada no hay ningún problema porque cualquier usuario que abra sesión puede imprimir por ella, pero tengo otros PCs donde he instalado la impresora a través de la red (compartida en otro equipo) y solo me aparece en la cuenta de usuario que la instaló, el resto de usuarios que entrar en el PC no pueden imprimir por ella porque no la tienen instalada.

He estado mirando por el foro y he encontrado este código:
Código Delphi [-]
var
    NetResource: TNetResource;
  begin
    NetResource.dwType       := RESOURCETYPE_DISK;
    NetResource.lpLocalName  := 'LPT3:';
    NetResource.lpRemoteName := '\\Servidor\Impresora';
    NetResource.lpProvider   := '';
    WNetAddConnection2(NetResource,
        '', {Clave o vacio /Password or empty}
        '', {Nombre del usurio o vacio/User name o vacio}
        CONNECT_UPDATE_PROFILE);

lo ejecuto con un usuario donde no está instalada pero no funciona.
¿Se puede hacer?
El Sistema operativo es XP.
Saludos

newtron 13-09-2012 09:42:49

Hola.

¿No usas el objeto "Printer" para manejar las impresoras?

Parsec 13-09-2012 22:57:03

Hola,

no uso el printer porque solo quiero que quede instalada, aunque tampoco tengo muy claro si lo debería utilizar, este código lo he encontrado por el foro.


Saludos

newtron 14-09-2012 17:32:30

Prueba a usar el objeto printer para recorrer las impresoras que hay a ver si la encuentras desde delphi.

ecfisa 14-09-2012 23:47:49

Hola Parsec.

Quizá también te podrian interesar estos enlaces:
Saludos.

Parsec 15-09-2012 10:42:37

Hola,

lo quiero hacer con código delphi, cuando un usuario se autentique en el PC (pertenece a un dominio y hay multitud de usuarios), que se instale la impresora compartida en red y cuando se apague el PC o cierre sesión que se desinstale.

O eso pretendo, no se si se podrá.

Saludos

Parsec 29-09-2012 13:22:00

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

Parsec 04-10-2012 21:23:29

¿Quién me puede echar un cable?!!!!!.

Saludos

Casimiro Notevi 04-10-2012 21:38:39

Código:

NetResource.lpLocalName  := pchar('USB001:');
NetResource.lpRemoteName := PCHAR('\\Mallory\CanonLBP2900');

¿Y eso existe y es correcto?

Parsec 05-10-2012 18:39:59

Hola Casimiro,

Cita:

NetResource.lpLocalName := pchar('USB001:');
NetResource.lpRemoteName := PCHAR('\\Mallory\CanonLBP2900');
El código lo he encontrado por el foro, a mi no me funciona, tampoco me da error de sintaxis (creo que estará bien formulado), pero no te puedo asegurar que sea el correcto.

Conoces algún método para agregar impresoras por código?, la idea es ejecutarlo cuando inician la sesión.
Se trata de un dominio y a cualquier PC puede entrar muchos usuarios.

Saludos

ecfisa 05-10-2012 19:05:27

Hola Parsec.

No conocía el código en cuanto pueda lo voy a probar, pero así a simple vista, estoy seguro que a mi no me funcionaría, ya que la localización '\\Mallory\CanonLBP2900' no existe en mi red.

Así que aún a riesgo de preguntar una tontería: ¿ La cadena que asignas a NetResource.lpRemoteName, accede a la localización de la impresora de tu red ?

Saludos.

Casimiro Notevi 05-10-2012 19:21:33

No me queda muy claro:
- ¿Quieres usar una impresora compartida?
- ¿Quieres compartir una impresora que no está compartida?

Parsec 05-10-2012 21:24:56

Hola,

Ecfisa: Si esa es la ruta del equipo que tiene la impresora compartida.

Casimiro: La impresora está compartida en un PC, pero hay otros PCs donde la quiero agregar, el problema es que los PCs forman parte de un dominio y son muchos los usuarios que los utilizan, no puedo agregar la impresora en cada uno de los perfiles y para cada uno de los PCs, por lo que había pensado en hacer un programa que agregue la impresora compartida cuando el usuario inicie la sesión y que la elimine cuando deje la sesión.

Espero haberme explicado.

Saludos a tod@s

Casimiro Notevi 05-10-2012 23:59:03

Entonces entiendo que lo que quieres hacer es: usar una impresora de red.
Pues no recuerdo ahora mismo cómo es eso, a ver si buscando un poco doy con algo...

Parsec 23-11-2012 14:05:56

Hola a tod@s,

sigo muy interesado por el problema planteado en este hilo, si tenéis alguna solución os estaría muy agradecido.

Saludos

alexzuko 10-12-2013 20:55:34

como instalar una impresora
 
HOLA

buenas tardes

yo estaba igual hasta que encontre esto http://ow.ly/rBOVb ( solo ponlo todo junto , tuve que separarlo por que todavia no puedo poner enlaces) lo cual me ayudo mucho paso a paso pude conectar y configurar mi impresora y otras que tenia

bueno espero y te funcione


saludos


La franja horaria es GMT +2. Ahora son las 17:06:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi