La Web del Programador: Comunidad de Programadores
 
    Pregunta:  16175 - COMO DETECTAR LA CANTIDAD DE HOJAS IMPRESAS
Autor:  Jorge Calo
¿ Como puedo realizar un programa en Visual Basic que me detecte la cantidad de páginas que se imprimieron, o que se están imprimiendo, desde cualquier aplicación en windows, como por ejemplo el word ?.

Gracias.

  Respuesta:  jauser
'Solo pon un ComBox, un ListBox y un Botón.
Asi te mostrara las paginas que se van a imprimir.
Option Explicit

' Declaración de la función
Private Declare Function GetPrinterJobs Lib "gsPrinterJobs.dll" _
(ByVal sDeviceName As String) As Long

Private Sub cmdInfo_Click()
Dim s As String
Dim n As Long
Const Fallo As Long = -1&
'
s = cboPrinters.Text
'
n = GetPrinterJobs(s)
If n = Fallo Then
List1.AddItem "Fallo al llamar a la función"
Else
List1.AddItem s
List1.AddItem "Número de trabajos pendientes: " & n
End If
End Sub

Private Sub Form_Load()
' Enumerar las impresoras disponibles
Dim tPrinter As Printer
'
' Añadir las impresoras disponibles
For Each tPrinter In Printers
cboPrinters.AddItem tPrinter.DeviceName
Next
' Asignar la variable de la impresora seleccionada
Set tPrinter = Printer
If cboPrinters.ListCount > 0 Then
cboPrinters.Text = tPrinter.DeviceName
End If
End Sub