Visual Basic.NET - Saber estado de la impresora

 
Vista:
sin imagen de perfil

Saber estado de la impresora

Publicado por Guillermo (42 intervenciones) el 09/04/2015 20:59:11
Hola! He visto que en el foro hay diversos temas, pero sin responder, en el que se pregunta como saber cual es el estado de la impresora, y yo también busco lo mismo.
Me gustaría saber, antes de imprimir, cual es el estado de la impresora, para mandar a imprimir un documento, y si está ocupada, no mandarlo hasta que la impresora esté otra vez disponible. Si le falta tinta, papel, si está atascada, o si está apagada.
Buscando por internet, he encontrado este fragmento de codigo, que supuestamente rellena un Richtextbox, pero resulta que algunas partes me las subraya en azul, cuando se supone que debería de funcionar. Abajo, en la lista de errores, me dice: "Error 2 El tipo 'ManagementObjectSearcher' no está definido.", pero se supone que este error no deberia aparecer puesto que yo importo la libreria de turno antes del codigo.

Alguien podría solucionarme el problema? Muchas gracias. Aqui adjunto una captura de la pantalla con el codigo:

estadoimpresora
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
sin imagen de perfil

Saber estado de la impresora

Publicado por Guillermo (42 intervenciones) el 10/04/2015 13:16:13
Hola de nuevo! de verdad que NADIE me puede ayudar? nadie sabe o cree a que puede deberse el error?? venga, a ver si os lo currais y me solucionais el problema, que estoy atascado y después esto siempre le puede venir bien a cualquier persona que lo necesite! Estoy utilizando Visual Basic 10 Express.
1saludo
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
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Saber estado de la impresora

Publicado por Miguel (476 intervenciones) el 11/04/2015 03:01:15
Hola, intenta agregando "System.Management" antes de los dos errores que te aparecen ("ManagementObjectSearcher" y "ManagementObject").

Saludos
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
sin imagen de perfil

Saber estado de la impresora

Publicado por Guillermo (42 intervenciones) el 14/04/2015 19:07:42
Hola Miguel! No sé exactamente a que te refieres con agregar "system.management". Si es importar la librería está importada al principio del código. Si es otra cosa dime por favor como debo agregarla.
En la imagen que publico arriba se ve el codigo, y al principio del codigo hago un Imports System.Management, pero ni aún así funciona.
Gracias por tu interés. A ver si entre todos lo solucionamos! ;-)
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
sin imagen de perfil

Saber estado de la impresora

Publicado por Guillermo (42 intervenciones) el 14/04/2015 20:54:19
Bueno! Por fin lo he conseguido solucionar. Era algo tan sencillo como agregar una referencia nueva al proyecto. Los pasos son los siguientes:

1º Seleccionar Proyecto -> Agregar referencia
2º Seleccionar System.Management.dll en la lista (está en la pestaña .NET)
3º Hacer clic en Aceptar para agregar la referencia.

Veremos que el Richtextbox se llena con casi 80 lineas de características de la impresora.
He hecho comprobaciones, como quitarle el papel a la impresora, y he visto que lo que cambia cuando sucede un error en la impresión es lo siguiente:

DetectedErrorState
ExtendedDetectedErrorState
ExtendedPrinterStatus
JobCountSinceLastReset
PrinterState
PrinterStatus


Ahora voy a buscar la referencia de los errores que me devuelve, para saber exactamente cada código de error que es lo que significa, cuando lo averigue, lo colgaré en éste artículo por si a alguien le ha pasado lo mismo que pueda aprovecharse.
1saludo.
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
sin imagen de perfil

Saber estado de la impresora

Publicado por Alberto (1 intervención) el 16/07/2021 15:57:58
llegue años tardes, pero entiendo que ya solucionaste!
lo que pasa es que tu libreria System.Management corresponde a una version supuerior de NETFramework y tu codigo esta corriendo en otra version
verifica en que version de NETFramework utilizas y luego has importa la referencia desde tu directorio

ejemplo:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Management.dll

espero eso ayude para lo que buscan una solucion
saludos
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