Spool de impresion

17/11/2008 - 12:37 por LunNna | Informe spam
Hola a todos.
Necesito crear una aplicación que se va a usar en un servidor de
impresiones. Esta aplicación tiene que obtener ciertos datos de todos los
trabajos que se manden a imprimir a cualquiera de las impresoras instaladas
desde los clientes.
La verdad que no se muy bien como enfocarlo, si escuchar los puertos de las
impresoras, o si hay alguna manera de obtener un acceso al spool.
¿Alguien tiene alguna sugerencia?
Muchas gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 RFOG
17/11/2008 - 12:43 | Informe spam
En .NET no sé si hay algo (creo que no), pero en Win32 tienes una espuerta
de funciones para ello. Date un voltio por
http://msdn.microsoft.com/en-us/library/ms535737(VS.85).aspx y fíjate en
la sección "The following functions are used to access the print spooler"
y sobre todo en las funciones EnumJobs(), EnumPrinters(), etc...



On Mon, 17 Nov 2008 12:37:01 +0100, LunNna
wrote:

Hola a todos.
Necesito crear una aplicación que se va a usar en un servidor de
impresiones. Esta aplicación tiene que obtener ciertos datos de todos los
trabajos que se manden a imprimir a cualquiera de las impresoras
instaladas
desde los clientes.
La verdad que no se muy bien como enfocarlo, si escuchar los puertos de
las
impresoras, o si hay alguna manera de obtener un acceso al spool.
¿Alguien tiene alguna sugerencia?
Muchas gracias y un saludo.





Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si sabes que no llegarás a la meta, no te metas.
Respuesta Responder a este mensaje
#2 LunNna
17/11/2008 - 17:02 | Informe spam
Hola, antes que nada muchas gracias por responder. Estuve buscando y encontre
un ejemplo con WMI que me permite acceder a los trabajos que se mandan a
imprimir, accediendo a la tabla Win32_PrintJob. El problema es que tendría
que estar constantemente preguntando con un timer para comprobar si hay
nuevos trabajos, lo cual es muy poco eficiente.
Estuve mirando el link que me enviaste, y me parece que es algo parecido.
Obtendria una instancia del spool y podría ver los trabajos que hay en ese
instante, pero no puedo "enterarme" cuándo entra un nuevo trabajo para
analizarlo.
¿Sabes como puedo solucionar esto?
Muchisimas gracias y un saludo.


"RFOG" wrote:

En .NET no sé si hay algo (creo que no), pero en Win32 tienes una espuerta
de funciones para ello. Date un voltio por
http://msdn.microsoft.com/en-us/library/ms535737(VS.85).aspx y fíjate en
la sección "The following functions are used to access the print spooler"
y sobre todo en las funciones EnumJobs(), EnumPrinters(), etc...



On Mon, 17 Nov 2008 12:37:01 +0100, LunNna
wrote:

> Hola a todos.
> Necesito crear una aplicación que se va a usar en un servidor de
> impresiones. Esta aplicación tiene que obtener ciertos datos de todos los
> trabajos que se manden a imprimir a cualquiera de las impresoras
> instaladas
> desde los clientes.
> La verdad que no se muy bien como enfocarlo, si escuchar los puertos de
> las
> impresoras, o si hay alguna manera de obtener un acceso al spool.
> ¿Alguien tiene alguna sugerencia?
> Muchas gracias y un saludo.



Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Si sabes que no llegarás a la meta, no te metas.

Respuesta Responder a este mensaje
#3 RFOG
17/11/2008 - 17:15 | Informe spam
http://msdn.microsoft.com/en-us/lib...11058.aspx

Creo que es lo que quieres, aunque tiene pinta de complicadillo y
peligrosillo.



On Mon, 17 Nov 2008 17:02:05 +0100, LunNna
wrote:

Hola, antes que nada muchas gracias por responder. Estuve buscando y
encontre
un ejemplo con WMI que me permite acceder a los trabajos que se mandan a
imprimir, accediendo a la tabla Win32_PrintJob. El problema es que
tendría
que estar constantemente preguntando con un timer para comprobar si hay
nuevos trabajos, lo cual es muy poco eficiente.
Estuve mirando el link que me enviaste, y me parece que es algo parecido.
Obtendria una instancia del spool y podría ver los trabajos que hay en
ese
instante, pero no puedo "enterarme" cuándo entra un nuevo trabajo para
analizarlo.
¿Sabes como puedo solucionar esto?
Muchisimas gracias y un saludo.


"RFOG" wrote:

En .NET no sé si hay algo (creo que no), pero en Win32 tienes una
espuerta
de funciones para ello. Date un voltio por
http://msdn.microsoft.com/en-us/library/ms535737(VS.85).aspx y fíjate en
la sección "The following functions are used to access the print
spooler"
y sobre todo en las funciones EnumJobs(), EnumPrinters(), etc...



On Mon, 17 Nov 2008 12:37:01 +0100, LunNna
wrote:

> Hola a todos.
> Necesito crear una aplicación que se va a usar en un servidor de
> impresiones. Esta aplicación tiene que obtener ciertos datos de todos
los
> trabajos que se manden a imprimir a cualquiera de las impresoras
> instaladas
> desde los clientes.
> La verdad que no se muy bien como enfocarlo, si escuchar los puertos
de
> las
> impresoras, o si hay alguna manera de obtener un acceso al spool.
> ¿Alguien tiene alguna sugerencia?
> Muchas gracias y un saludo.



Microsoft Visual C++ MVP
==>> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
>> Si sabes que no llegarás a la meta, no te metas.








Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si sabes que no llegarás a la meta, no te metas.
Respuesta Responder a este mensaje
#4 LunNna
17/11/2008 - 17:37 | Informe spam
Uf, pues si que parece peligrosillo y complicadillo. La verdad que no se ni
como empezar, ¿todo eso es parte de una libreria? ¿tengo que agregar una
referencia? ¿es un proyecto de C#, o servicio?
Siento preguntarte tanto, pero es que es todo un mundo nuevo que ni sabia
que existia
Mil gracias.

"RFOG" wrote:

http://msdn.microsoft.com/en-us/lib...11058.aspx

Creo que es lo que quieres, aunque tiene pinta de complicadillo y
peligrosillo.



On Mon, 17 Nov 2008 17:02:05 +0100, LunNna
wrote:

> Hola, antes que nada muchas gracias por responder. Estuve buscando y
> encontre
> un ejemplo con WMI que me permite acceder a los trabajos que se mandan a
> imprimir, accediendo a la tabla Win32_PrintJob. El problema es que
> tendría
> que estar constantemente preguntando con un timer para comprobar si hay
> nuevos trabajos, lo cual es muy poco eficiente.
> Estuve mirando el link que me enviaste, y me parece que es algo parecido.
> Obtendria una instancia del spool y podría ver los trabajos que hay en
> ese
> instante, pero no puedo "enterarme" cuándo entra un nuevo trabajo para
> analizarlo.
> ¿Sabes como puedo solucionar esto?
> Muchisimas gracias y un saludo.
>
>
> "RFOG" wrote:
>
>> En .NET no sé si hay algo (creo que no), pero en Win32 tienes una
>> espuerta
>> de funciones para ello. Date un voltio por
>> http://msdn.microsoft.com/en-us/library/ms535737(VS.85).aspx y fíjate en
>> la sección "The following functions are used to access the print
>> spooler"
>> y sobre todo en las funciones EnumJobs(), EnumPrinters(), etc...
>>
>>
>>
>> On Mon, 17 Nov 2008 12:37:01 +0100, LunNna
>> wrote:
>>
>> > Hola a todos.
>> > Necesito crear una aplicación que se va a usar en un servidor de
>> > impresiones. Esta aplicación tiene que obtener ciertos datos de todos
>> los
>> > trabajos que se manden a imprimir a cualquiera de las impresoras
>> > instaladas
>> > desde los clientes.
>> > La verdad que no se muy bien como enfocarlo, si escuchar los puertos
>> de
>> > las
>> > impresoras, o si hay alguna manera de obtener un acceso al spool.
>> > ¿Alguien tiene alguna sugerencia?
>> > Muchas gracias y un saludo.
>>
>>
>>
>> Microsoft Visual C++ MVP
>> ==> >> Mi blog sobre programación: http://geeks.ms/blogs/rfog
>> Momentos Leves: http://momentosleves.blogspot.com/
>> Cosas mías: http://rfog.blogsome.com/
>> Libros, ciencia ficción y programación
>> > >> Si sabes que no llegarás a la meta, no te metas.
>>



Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Si sabes que no llegarás a la meta, no te metas.

Respuesta Responder a este mensaje
#5 RFOG
17/11/2008 - 18:06 | Informe spam
Pues me he asustado hasta yo mismo...

A ver, se trata de acceder y suscribirse mediante RPC (por lo que lo
puedes hacer incluso desde un ordenador cliente contra un servidor) y
Active Directory a las notificaciones del servidor de impresión... y
ciertamente la cosa tiene su miga.

Aunque la documentación no es nada clara, son funciones de Win32 puras y
duras que se pueden usar para eso. Todo el tema parte de aquí:
http://msdn.microsoft.com/en-us/lib...97979.aspx

Aquí he encontrado una equivalencia entre funciones RPC y las normales de
Win32:
http://www.hsc.fr/ressources/articl...olss.html, pero
las que interesan como RpcRemoteFindFirstPrinterChangeNotificationEx no
tienen equivalente...

Todo esto no es C#, es Win32, C y C++ y poco más, y no creo que haya
equivalente manejado ni WMI, aunque lo mismo sí que hay algún punto de
entrada a través de COM y DCOM...

Tras ver todo el lío, mi consejo es que hagas una aplicación (o un
servicio) que consulte cada segundo el tema mediante polling y te olvides
de esto...

On Mon, 17 Nov 2008 17:37:01 +0100, LunNna
wrote:

Uf, pues si que parece peligrosillo y complicadillo. La verdad que no se
ni
como empezar, ¿todo eso es parte de una libreria? ¿tengo que agregar una
referencia? ¿es un proyecto de C#, o servicio?
Siento preguntarte tanto, pero es que es todo un mundo nuevo que ni sabia
que existia
Mil gracias.

"RFOG" wrote:

http://msdn.microsoft.com/en-us/lib...11058.aspx

Creo que es lo que quieres, aunque tiene pinta de complicadillo y
peligrosillo.



On Mon, 17 Nov 2008 17:02:05 +0100, LunNna
wrote:

> Hola, antes que nada muchas gracias por responder. Estuve buscando y
> encontre
> un ejemplo con WMI que me permite acceder a los trabajos que se
mandan a
> imprimir, accediendo a la tabla Win32_PrintJob. El problema es que
> tendría
> que estar constantemente preguntando con un timer para comprobar si
hay
> nuevos trabajos, lo cual es muy poco eficiente.
> Estuve mirando el link que me enviaste, y me parece que es algo
parecido.
> Obtendria una instancia del spool y podría ver los trabajos que hay en
> ese
> instante, pero no puedo "enterarme" cuándo entra un nuevo trabajo para
> analizarlo.
> ¿Sabes como puedo solucionar esto?
> Muchisimas gracias y un saludo.
>
>
> "RFOG" wrote:
>
>> En .NET no sé si hay algo (creo que no), pero en Win32 tienes una
>> espuerta
>> de funciones para ello. Date un voltio por
>> http://msdn.microsoft.com/en-us/library/ms535737(VS.85).aspx y
fíjate en
>> la sección "The following functions are used to access the print
>> spooler"
>> y sobre todo en las funciones EnumJobs(), EnumPrinters(), etc...
>>
>>
>>
>> On Mon, 17 Nov 2008 12:37:01 +0100, LunNna
>> wrote:
>>
>> > Hola a todos.
>> > Necesito crear una aplicación que se va a usar en un servidor de
>> > impresiones. Esta aplicación tiene que obtener ciertos datos de
todos
>> los
>> > trabajos que se manden a imprimir a cualquiera de las impresoras
>> > instaladas
>> > desde los clientes.
>> > La verdad que no se muy bien como enfocarlo, si escuchar los
puertos
>> de
>> > las
>> > impresoras, o si hay alguna manera de obtener un acceso al spool.
>> > ¿Alguien tiene alguna sugerencia?
>> > Muchas gracias y un saludo.
>>
>>
>>
>> Microsoft Visual C++ MVP
>> ==>> >> Mi blog sobre programación: http://geeks.ms/blogs/rfog
>> Momentos Leves: http://momentosleves.blogspot.com/
>> Cosas mías: http://rfog.blogsome.com/
>> Libros, ciencia ficción y programación
>> >> >> Si sabes que no llegarás a la meta, no te metas.
>>



Microsoft Visual C++ MVP
==>> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
>> Si sabes que no llegarás a la meta, no te metas.








Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si sabes que no llegarás a la meta, no te metas.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida