Visual Basic - Impresora encendida o apagada

Life is soft - evento anual de software empresarial
 
Vista:

Impresora encendida o apagada

Publicado por Oscar (2 intervenciones) el 18/04/2007 15:29:35
Hola a todos, necesito detectar el estado de una impresora local y también de una impresora remota con visual basic, para poder determinar si una impresora esta encendida o apagada.

Encontré algún código en la pagina de microsoft:

http://support.microsoft.com/kb/551207/es

pero al parecer no funciona en Windows XP, o al menos a mi no me funcionó

Espero alguien haya resuelto este problema anteriormente y me pueda ayudar

muchas gracias.
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:Impresora encendida o apagada

Publicado por ARTURO OLMEDO (7 intervenciones) el 14/01/2008 19:45:19
Hola amigo.
Me encuentro en la misma situacion que tu.
Ya estuve probando con el elemento Attributes del Printer_Info_2
pero no me devuelve los valores CORRECTOS PARA PRINTER_WORK_OFFLINE.
Tal parece solo trabaja para w98-95 y Me.
Ya logre detectar que el valor es diferente cuando la impresora esta apagada o encendida , pero no es el mismo para todas las impresoras.
Debe de ser algun byte de attributes el que determine si esta apagada o no.
Por ejemplo en una impresora cuando esta encedendida me devuelve 72 y cuando esta apagada 1096, pero en otra me devuelve otro valor cuando esta encendida y otro cuando esta apagada, que no corresponden a las constantes definidas en el win32 api
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

Ya lo resolvi-Impresora encendida o apagada

Publicado por ARTURO OLMEDO (7 intervenciones) el 14/01/2008 23:47:02
Amigos.

Debes utilizar el valor attributes que es parte de la estructura PRINTER_info_2.
El bit 11 (1024) es el que determina si la impresora esta encendida o no.

Mira mis ejemplos

IMPRSORA HP
*
3656 - 111001001000 - SIN CONEXION
2632 - 101001001000 - CONECTADO

IMPRESORA FAX HP
*
1096 - 010001001000 - SIN CONEXION
0072 - 000001001000 - CONECTADO

Al ejecutar un and con el valor 1024 si te da 0
es que la impresora esta encendida y si te da
1024 es que la impresora esta sin conexion

Ejemplo con and
000001001000
and 010000000000
------------
000000000000

111001001000
010000000000
------------
010000000000

Obviamente primero debes abrir la impresora con Api Openprinter
y despues obtener informacion con gETpRINTER. hAY MUCHOS
EJEMPLOS DE ESTOS CODIGO.

Despues de que leas con getprinter has el and con 1024
y asignalo a una variable entera.
Si te da 0 esta encendida y si no esta apagada.

Saludos
JAOR

p.d.
CUalquier problema me avisan.
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