Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Drucker anhalten?

Drucker anhalten?
28.05.2008 20:05:11
Joachim
Hallo Excel-User,
mein "HP 1100 Drucker" macht Zicken und schiebt nach jedem erledigtem Auftrag ein Leerblatt hinterher!
nervig!
Wenn ich mehrere Aufträge auf einmal absetze, bekomme ich auch nur eine Leere Seite.
Nun meine Frage: läst sich der Drucker per VBA anhalten und nachdem sämtliche Druckaufträge
erteilt wurden wieder starten ?
Sicher wäre es sinnvoller einen neuen Drucker zu kaufen, aber ich habe noch einige gefüllte Druckpatronen!
Vielen Dank für eure Mühe.
mfg Joachim

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drucker anhalten?
29.05.2008 15:52:43
Tino
Hallo,
versuche es mal hiermit

Option Explicit
Private Declare Function SetPrinter Lib "winspool.drv" Alias _
"SetPrinterA" (ByVal hPrinter As Long, ByVal Level _
As Long, pPrinter As Byte, ByVal Command As Long) _
As Long
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
Private Type PRINTER_DEFAULTS
pDatatype As Long
pDevMode As Long
DesiredAccess As Long
End Type
Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Const PRINTER_ACCESS_ADMINISTER As Long = &H4
Const PRINTER_ACCESS_USE As Long = &H8
Const PRINTER_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or _
PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
Private Const PRINTER_CONTROL_PURGE As Long = 3&
Private Const PRINTER_CONTROL_PAUSE As Long = 1&
Private Const PRINTER_CONTROL_RESUME As Long = 2&
Private Sub PrinterCommand(ByVal Command As Long)
Dim PName As String
Dim Result As Long, hPrinter As Long
Dim pd As PRINTER_DEFAULTS
pd.DesiredAccess = PRINTER_ALL_ACCESS
PName = Left$(ActivePrinter, InStr(ActivePrinter, "auf") - 2) 'gibt den Druckernamen aus
Result = OpenPrinter(PName, hPrinter, pd)
If Result = 0 Then
Call MsgBox("Ein Druckerhandle konnte nicht erstellt werden." & _
vbNewLine & "Möglicherweise verfügen Sie nicht über die " & _
"erforderlichen Rechte zum Ausführen dieser Aktion.", _
vbExclamation + vbOKOnly, ThisWorkbook.Title)
Exit Sub
End If
Result = SetPrinter(hPrinter, 0, vbNull, Command)
If Result = 0 Then
Call MsgBox("Die angeforderte Aktion konnte aufgrund eines " & _
"Fehlers nicht durchgeführt werden.", _
vbExclamation + vbOKOnly, ThisWorkbook.Title)
End If
Result = ClosePrinter(hPrinter)
End Sub
Sub Druckereinstellung()
'PRINTER_CONTROL_PURGE  =  lösche Druckaufträge
'PRINTER_CONTROL_PAUSE  =  Drucker anhalten
'PRINTER_CONTROL_RESUME =  drucker fortsetzen
Call PrinterCommand(PRINTER_CONTROL_PAUSE)
End Sub


Gruß
Tino
www.tinomargit.com

Anzeige
AW: Drucker anhalten?
29.05.2008 17:23:00
Joachim
Hallo Tino,
klappt ja super!!
Vielen Dank Joachim

AW: Drucker anhalten?
29.05.2008 15:54:00
fcs
Hallo Joachim,
das sieht mir doch eher nach einer Einstellung am Drucker selbst oder in den Druckereigenschaften aus, wenn nach jedem Druckjob eine Leerseite folgt.
Der Befehl zum weiteren Seitenvorschub muss ja irgendwoher kommen.
Gruß
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige