vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Drucker   |   VB-Versionen: VB4, VB5, VB619.02.01
Druckaufträge eines bestimmten Druckers löschen

Dieser Tipp ermöglicht das Löschen aller Druckaufträge eines bestimmten Druckers.

Autor:   Dieter OtterBewertung:  Views:  23.985 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Der nachfolgende Tipp zeigt, wie man alle Dokumente eines bestimmten Druckers aus der Drucker-Warteschlange löschen kann.

' zunächst die benötigten API-Deklarationen
Private Declare Function SetPrinter Lib "winspool.drv" _
  Alias "SetPrinterA" ( _
  ByVal hPrinter As Long, _
  ByVal Level As Long, _
  pPrinter As Any, _
  ByVal Command As Long) As Long
 
Private Declare Function OpenPrinter Lib "winspool.drv" _
  Alias "OpenPrinterA" ( _
  ByVal pPrinterName As String, _
  phPrinter As Long, _
  pDefault As Any) As Long
 
Private Declare Function ClosePrinter Lib "winspool.drv" ( _
  ByVal hPrinter As Long) As Long
 
Private Const PRINTER_CONTROL_PURGE = 3
 
Private Type PRINTER_DEFAULTS
  pDatatype As String
  pDevMode As Long
  DesiredAccess As Long
End Type
 
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const PRINTER_ATTRIBUTE_DEFAULT = &H4
Private Const PRINTER_ACCESS_ADMINISTER = &H4
Private Const PRINTER_ACCESS_USE = &H8
Private Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _
  PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
' Druckaufträge eines bestimmen Druckers löschen
Public Sub DeleteDocsFromPrinterQueue(Optional _
  ByVal prnName As String)
 
  Dim Result As Long
  Dim hPrinter As Variant
  Dim udtPrinter As PRINTER_DEFAULTS
 
  If IsMissing(prnName) Or prnName = "" Then _
    prnName = Printer.DeviceName
 
  udtPrinter.DesiredAccess = PRINTER_ALL_ACCESS
 
  Result = OpenPrinter(prnName, hPrinter, udtPrinter)
  If hPrinter <> 0 Then
    Result = SetPrinter(hPrinter, 0, vbNull, _
      PRINTER_CONTROL_PURGE)
    If Result = 0 Then RaiseLastWin32Error
  End If
  Result = ClosePrinter(hPrinter)
End Sub

Anmerkung:
Optional kann der Prozedur ein bestimmter Druckername als Parameter übergeben werden. Wird nichts angegeben, so werden dir Druckaufträge des Standard-Druckers gelöscht.
 



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.