Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/05/2009, 08:25
sebaxd
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con cola de impresion ....

hay va.....

funcimpr = JOB_CONTROL_RESUME ' pa continuar impresion

funcimpr =JOB_CONTROL_DELETE' pa pausar

KillPrintJob (Impresora), (Numero_trabajo), (funcimpr)




---------------------------------------
'en un modulo

Option Explicit
Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, lpbPorts As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Type PORT_INFO_2
pPortName As Long
pMonitorName As Long
pDescription As Long
fPortType As Long
Reserved As Long
End Type
Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" ( _
hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Declare Function CopyPointer2String Lib "KERNEL32" _
Alias "lstrcpyA" ( _
ByVal NewString As String, ByVal OldString As Long) As Long
Public Const PORT_TYPE_NET_ATTACHED = &H8
Public Const PORT_TYPE_READ = &H2
Public Const PORT_TYPE_REDIRECTED = &H4
Public Const PORT_TYPE_WRITE = &H1
Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Type JOB_INFO_1
JobId As Long
pPrinterName As Long
pMachineName As Long
pUserName As Long
pDocument As Long
pDatatype As Long
pStatus As Long
Status As Long
Priority As Long
Position As Long
TotalPages As Long
PagesPrinted As Long
Submitted As SYSTEMTIME
End Type
Type PRINTER_DEFAULTS
pDatatype As Long
pDevMode As Long
DesiredAccess As Long
End Type
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Const JOB_STATUS_DELETING = &H4
Public Const JOB_STATUS_ERROR = &H2
Public Const JOB_STATUS_OFFLINE = &H20
Public Const JOB_STATUS_PAPEROUT = &H40
Public Const JOB_STATUS_PAUSED = &H1
Public Const JOB_STATUS_PRINTED = &H80
Public Const JOB_STATUS_PRINTING = &H10
Public Const JOB_STATUS_SPOOLING = &H8
Public Const JOB_STATUS_USER_INTERVENTION = 1024
Public Const MIN_PRIORITY = 1
Public Const MAX_PRIORITY = 99
Public Const DEF_PRIORITY = 1

'**** declaracion para imprimir o eliminar un trabajo de la cola de impresion
'Private Type PRINTER_DEFAULTS
' pDatatype As String
'pDevMode As Long
'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 PrinterAccessRights
PRINTER_ACCESS_ADMINISTER = &H4
PRINTER_ACCESS_USE = &H8
PRINTER_ALL_ACCESS = &HF000C
End Enum

Private Declare Function SetJob Lib "winspool.drv" Alias _
"SetJobA" (ByVal hPrinter As Long, _
ByVal JobId As Long, _
ByVal Level As Long, _
pJob As Long, _
ByVal Command As Long) As Long



Public Enum PrintJobControlCommands
JOB_CONTROL_PAUSE = 1
JOB_CONTROL_RESUME = 2
JOB_CONTROL_CANCEL = 3
JOB_CONTROL_RESTART = 4
JOB_CONTROL_DELETE = 5
JOB_CONTROL_SENT_TO_PRINTER = 6
JOB_CONTROL_LAST_PAGE_EJECTED = 7
End Enum


Public Sub KillPrintJob(ByVal PrinterDeviceName As String, ByVal idJob As Long, funcion As String)

Dim lRet As Long
Dim mhPrinter As Long
Dim paAll As PRINTER_DEFAULTS

paAll.DesiredAccess = PRINTER_ALL_ACCESS
Call OpenPrinter(PrinterDeviceName, mhPrinter, paAll)
If mhPrinter <> 0 Then
lRet = SetJob(mhPrinter, idJob, 0, 0, funcion)
Call ClosePrinter(mhPrinter)
End If
End Sub