Eigenschaften eines Druckers über API anzeigen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Eigenschaften eines Druckers über API anzeigen
von: Holger Wächter
Geschrieben am: 06.04.2005 08:24:24
Hallo,
habe folgendes Problem:
Habe mir eine Userform gemacht in der man einen Drucker auswählt und dieser dann auch als aktiver Drucker gesetzt wird.
Jetzt möchte ich das man noch über einen Commandbutten die Eigenschaften zu dem Drucker verändern kann.
Habe das mit
'Application.Dialogs(xlDialogPrinterSetup).Show' oder auch mit
'Application.Dialogs(xlDialogPrint).Show' gelöst.
Das Problem dabei ist nur, er geht dabei nicht direkt auf die Eigenschaften sondern erst noch jeweils auf eine Druckerauswahl wo man dann auf 'Optionen...' oder 'Eigenschaften' erstmal drücken muss.
Habe auch dann mit Sendkeys das Drücken auch sofort automatisiert. Nur beim zurückgehen geht er natürlich erst wieder auf dei Druckerauswahl.
Kennt hier jemand eine Möglichkeit, wie man direkt die Eigenschaften (Eigenschaftsfenster) eines bestimmten Druckers anpassen kann ohne vorher über die Druckerauswahl zu gehen?
Geht das vielleicht mit API? Wäre über jegliche Hilfe dankbar
MfG
Holger Wächter

Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Dieter
Geschrieben am: 06.04.2005 10:48:58
Hi,
auch mit API müssen die Eigenschaften von Hand eingestellt werden.
mfg Dieter
Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Holger Wächter
Geschrieben am: 06.04.2005 11:39:18
Hallo,
möchte die Eigenschaften ja auch von hand ändern. Mächte nur nicht das vorher noch das Auswahlfenster für die Drucker erscheint sondern dieses übergangen wird. Geht das?
MfG
Holger Wächter
Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Dieter
Geschrieben am: 06.04.2005 12:02:58
Hi,
dazu brauchst diese API:
Private Declare Function PrinterProperties Lib "winspool.drv" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long
Für Codebeispiel mal googeln.
mdg Dieter
Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Holger Wächter
Geschrieben am: 06.04.2005 12:38:32
Habe folgendes gefunden:
Er sagt nur das die Function nicht deklariert ist. Was ist falsch?
' API-Deklarationen:
Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Private Const PRINTER_ACCESS_ADMINISTER As Long = &H4&
Private Const PRINTER_ACCESS_USE As Long = &H8&
Private Const PRINTER_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or _
PRINTER_ACCESS_ADMINISTER Or _
PRINTER_ACCESS_USE)
Private Type PRINTER_DEFAULTS
Datatype As Long
pDevMode As Long
pDesiredAccess As Long
End Type
Private Declare Function PrinterProperties _
Lib "winspool.drv" ( _
ByVal hWnd As Long, _
ByVal hPrinter As Long _
) As Long
Private Declare Function OpenPrinter _
Lib "winspool.drv" Alias "OpenPrinterA" ( _
ByVal PrinterName As String, _
ByRef phPrinter As Long, _
ByRef pDefault As PRINTER_DEFAULTS _
) As Long
Private Declare Function ClosePrinter _
Lib "winspool.drv" ( _
ByVal hPrinter As Long _
) As Long

Private Function ShowPrinterProperties(ByRef ModalTo As Form) As Boolean
' Gibt bei erfolgreicher Anzeige des Dialogs True zurück.
Dim RetVal As Long
Dim hPrinter As Long
Dim PD As PRINTER_DEFAULTS
  ShowProperties = True
  ' Vollen Zugriff verlangen
  PD.pDesiredAccess = PRINTER_ALL_ACCESS
  ' Druckerhandle ermitteln
  RetVal = OpenPrinter(Printer.DeviceName, hPrinter, PD)
  If RetVal = 0 Then ShowProperties = False
  ' Dialog anzeigen
  If ShowProperties = True Then
    RetVal = PrinterProperties(ModalTo.hWnd, hPrinter)
    If RetVal = 0 Then ShowProperties = False
  End If
  If ShowProperties = True Then
    ' Druckerhandle freigeben
    RetVal = ClosePrinter(hPrinter)
  End If
End Function

Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Heiko S.
Geschrieben am: 06.04.2005 19:12:55
Hallo Holger,
ich bins wieder, dieser blöde Dialog hat mich doch nicht losgelassen.
Aber nun habe ich, zumindest hier zuhause auf ME mit EXCEL 2000 das ganze zum laufen gebracht.
Schau mal hier rein, ich glaube das hast du gesucht.
https://www.herber.de/bbs/user/20794.xls

Gruß Heiko
PS: Rückmeldung wäre nett
Bild

Betrifft: AW: Eigenschaften eines Druckers über API anzeigen
von: Holger Wächter
Geschrieben am: 08.04.2005 12:41:22
Hallo,
danke viel mals. Habe Deinen Code bei mir eingefügt und es klappt tadellos.
Vielen Dank
Holger Wächter
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Eigenschaften eines Druckers über API anzeigen"