Windows NT - Hacer un restart de orden spool nivel comando

 
Vista:

Hacer un restart de orden spool nivel comando

Publicado por jesus (2 intervenciones) el 11/07/2001 13:20:14
Me gustaria saber si existe algun comando para hacer un restart de una orden de spool, no me vale a nivel grafico, tampoco me vale el comando net print /release ya que este comando despausa una orden de spool, no hace un restart.
Si resolveis esto es que sois la caña, ya que he hablado con microsoft y no tienen ni idea, que lo van a pasar al departamento de desarrollo a ver si ellos saben algo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Hacer un restart de orden spool nivel comando

Publicado por Javier Ruiz (814 intervenciones) el 11/07/2001 17:32:10
Buf, desde la línea de comandos, ni idea. Hay una función API que te permite controlar el estado de una tarea de impresión. La declaración es esta:
Declare Function SetJob& Lib "spoolss.dll" Alias "SetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal Command As Long)
Mediante el parámetro command , el trabajo de impresión controlado por JobId puede tomar el valor JOB_CONTROL_RESTART.
Así podría hacerse un programita que desde la línea de comandos recibiera tres parámetros: la impresora, el número de trabajo que se va a modificar y el estado que se va a actualizar.

Otro truco que se me ocurre (un poco cutre, y no sé si funcionará) es el siguiente. Cuando el trabajo se manda a la cola de impresión, se crean dos archivos en el directorio donde esté configurada la cola. Uno tiene extensión .shd y el otro .spl .Estos archivos toman el nombre del siguiente número identificador de trabajo a imprimir, p.e. 00012.shd y 00012.spl . Cuando han terminado de generarse (o cuando alcanzan un cierto tamaño, no se bien) es cuando se mandan a la impresora. Entonces en el momento en el que han finalizado de generarse es cuando se puede hacer algo con ellos. Lo primero sería parar la cola de impresión con 'net stop spooler'. Lo siguiente sería renombrar los ficheros para que cogieran el primer número de trabajo (00001.shd y 00001.spl), y entonces volver a iniciar la cola con 'net start spooler' . En teoría volverían a imprimirse desde el principio, pero no tengo muy claro que funcione.

Bueno, si los de Microsoft te comentan una forma más fácil de hacerlo, cuéntalo en el foro, que no está de mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hacer un restart de orden spool nivel comando

Publicado por jesus (2 intervenciones) el 12/07/2001 13:19:47
Me podrias explicar como se utilizan las api´s.
Tengo que cargar algun programa?
Si es una comando del sistema operativo cuentame como es la sintaxis.

Los de microsoft me han dicho que se puede intentar haciendo un programa con visual C++.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hacer un restart de orden spool nivel comando

Publicado por Javier Ruiz (814 intervenciones) el 13/07/2001 10:04:04
Puedes hacerlo con Visual C++ o con Visual Basic. Hay algunas api's que se pueden utilizar desde la línea de comandos, pero en este caso en particular hay que hacerse un programa.
Si no controlas mucho estos lenguajes, dímelo y te preparo yo el programa cuando tenga algo de tiempo.
Saludos,
Javi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar