PDA

Ver la Versión Completa : Compartir Impresora en red con usuarios de un PC


Parsec
12-09-2012, 23:20:49
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: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, 10:42:49
Hola.

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

Parsec
13-09-2012, 23: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, 18:32:30
Prueba a usar el objeto printer para recorrer las impresoras que hay a ver si la encuentras desde delphi.

ecfisa
15-09-2012, 00:47:49
Hola Parsec.

Quizá también te podrian interesar estos enlaces:

Asignar permisos de impresora (http://technet.microsoft.com/es-es/library/cc773372%28v=ws.10%29.aspx).
Establecer Directiva de grupo para impresoras (http://technet.microsoft.com/es-es/library/cc781985%28v=ws.10%29.aspx)
Agregar una impresora conectada directamente a la red (http://technet.microsoft.com/es-es/library/cc757392%28v=ws.10%29.aspx)


Saludos.

Parsec
15-09-2012, 11: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, 14:22:00
Hola a tod@s,

después de decenas de pruebas no consigo agregar una impresora en red, utilizo el siguiente código:
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:

NetResource.lpLocalName := pchar('USB001:');
por esta otra:
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, 22:23:29
¿Quién me puede echar un cable?!!!!!.

Saludos

Casimiro Notevi
04-10-2012, 22:38:39
NetResource.lpLocalName := pchar('USB001:');
NetResource.lpRemoteName := PCHAR('\\Mallory\CanonLBP2900');
¿Y eso existe y es correcto?

Parsec
05-10-2012, 19:39:59
Hola Casimiro,

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, 20: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, 20:21:33
No me queda muy claro:
- ¿Quieres usar una impresora compartida?
- ¿Quieres compartir una impresora que no está compartida?

Parsec
05-10-2012, 22: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
06-10-2012, 00: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, 15: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, 21:55:34
HOLA

buenas tardes

yo estaba igual hasta que encontre esto http://ow.ly/rBOVb (http://www.inklaser.mx/guias/como-conectar-una-impresora-en-red/) ( 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