Printer Status VB6

Status
Niet open voor verdere reacties.

jkroeze

Gebruiker
Lid geworden
12 jun 2007
Berichten
56
Hallo

Ik ben al een poosje aan het zoeken geweest hoe ik de status van de printer kan krijgen.

Ik heb namelijk een server met daaraan een printer. dit is een laser printer en verbruikt dus redelijk wat stroom. Mijn bedoeling is dus wanneer de computer een document binnen krijgt de printer inschakeld (dit heb ik al klaar met de seriele poort en de code is ook al klaar).en nou wil ik dus wanneer de printer weer Ready is dus na het afdrukken van alle documenten weer uitgaat.
Wie kan me helpen met een code zodat ik kan zien of de printer Ready is of een Error heeft zoals papier op of paper jam.
deze pagina heb ik al bekeken maar hier snap ik niks van.

alvast bedankt
j.kroeze
 
Beetje roestige vb6 kennis, maar probeer dit...


in je decs:
Code:
Private Declare Function GetPrinterApi Lib "winspool.drv" Alias _
       "GetPrinterA" (ByVal hPrinter As Long, _
         ByVal Level As Long, _
         buffer As Long, _
         ByVal pbSize As Long, _
         pbSizeNeeded As Long) As Long 

Private Type PRINTER_DEFAULTS
  pDatatype As String
  pDevMode As DEVMODE
  DesiredAccess As Long
End Type

Private Declare Function OpenPrinter Lib "winspool.drv" _
    Alias "OpenPrinterA" (ByVal pPrinterName As String, _
    phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long

Private Declare Function ClosePrinter Lib "winspool.drv" _
    (ByVal hPrinter As Long) As Long 

Public Enum Printer_Status
   PRINTER_STATUS_READY = &H0
   PRINTER_STATUS_PAUSED = &H1
   PRINTER_STATUS_ERROR = &H2
   PRINTER_STATUS_PENDING_DELETION = &H4
   PRINTER_STATUS_PAPER_JAM = &H8
   PRINTER_STATUS_PAPER_OUT = &H10
   PRINTER_STATUS_MANUAL_FEED = &H20
   PRINTER_STATUS_PAPER_PROBLEM = &H40
   PRINTER_STATUS_OFFLINE = &H80
   PRINTER_STATUS_IO_ACTIVE = &H100
   PRINTER_STATUS_BUSY = &H200
   PRINTER_STATUS_PRINTING = &H400
   PRINTER_STATUS_OUTPUT_BIN_FULL = &H800
   PRINTER_STATUS_NOT_AVAILABLE = &H1000
   PRINTER_STATUS_WAITING = &H2000
   PRINTER_STATUS_PROCESSING = &H4000
   PRINTER_STATUS_INITIALIZING = &H8000
   PRINTER_STATUS_WARMING_UP = &H10000
   PRINTER_STATUS_TONER_LOW = &H20000
   PRINTER_STATUS_NO_TONER = &H40000
   PRINTER_STATUS_PAGE_PUNT = &H80000
   PRINTER_STATUS_USER_INTERVENTION = &H100000
   PRINTER_STATUS_OUT_OF_MEMORY = &H200000
   PRINTER_STATUS_DOOR_OPEN = &H400000
   PRINTER_STATUS_SERVER_UNKNOWN = &H800000
   PRINTER_STATUS_POWER_SAVE = &H1000000
End Enum
dit is de code dan om te kijken hoe het met je printer gaat...
Code:
Dim lret As Long
Dim pDef As PRINTER_DEFAULTS

lret = OpenPrinter(Printer.DeviceName, mhPrinter, pDef)

'lret heeft dan dus een waarde, welke in de enum van Printer_Status staat. Bv, als lret de waarde '&H8' heeft (long, geen sting) dan is er een "Paper jam".
ben even vergeten hoe je de enum kan opzoeken via je lret........
Geen idee of dit werkt, maar probeer het eens. Zit nu op een wVista machine, zonder vb (en printer, for that matter).



:thumb:


:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan