Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Druckerschächte / "Inkompatible Druckeinstellungen" (https://www.delphipraxis.net/159299-druckerschaechte-inkompatible-druckeinstellungen.html)

uligerhardt 22. Mär 2011 15:58


Druckerschächte / "Inkompatible Druckeinstellungen"
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo zusammen!

Wir haben hier einen Drucker, bei dem in den Druckeinstellungen nicht verwendbare Schächte aufgeführt werden:
Anhang 33686
(Die mit den gelben Warndreiecken.)

Wenn ich einen solchen Schacht im oben abgebildeten Dialog auswähle und OK drücke, kommt eine Fehlermeldung namens "Inkompatible Druckeinstellungen":
Anhang 33687

Wenn ich den gleichen Schacht hingegen per Quellcode (mit dem üblichen GetPrinter/ResetDC-Gebastel) oder in einem TPrinterSetupDialog
Anhang 33688
auswähle, wird beim Druck und im Dialog ganz oben stillschweigend auf einen anderen Schacht umgestellt. Der Dialog unten zeigt aber nach wie vor den nicht verwendeten Schacht an, ebenso liefert z.B. LeseAktuellenSchacht diesen zurück.

Wie kann ich diesen Fall erkennen, um eine Warnmeldung auszugeben oder das Wählen dieses Schachts zu verhindern?

Update:
Zitat:

Zitat von http://support.microsoft.com/kb/194789/en-us#appliesto
NOTE: This approach lists all PaperBins known to the printer driver, but every bin listed is not guaranteed to be physically installed on the printer. For example, some printers are available with an optional envelope feeder. This selection is reported by the API even if that feature is not currently installed on the printer.

Ein Hinweis zur Lösung ist natürlich nicht zu finden. :wall:

p80286 22. Mär 2011 17:10

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
Ich vermute mal, Du hast eine Bidirektionale Druckerschnittstelle, also sollte der Treiber im Prinzip dazu in der Lage sein, den Drucker zu fragen wie es mit den Paperbehältern aussieht.
Ob das MS-API damit umgehen kann steht auf einem anderen Blatt.
Hat Lexmark dazu nichts zu bieten?

Gruß
K-H

uligerhardt 22. Mär 2011 17:27

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
Zitat:

Zitat von p80286 (Beitrag 1090310)
Ich vermute mal, Du hast eine Bidirektionale Druckerschnittstelle, also sollte der Treiber im Prinzip dazu in der Lage sein, den Drucker zu fragen wie es mit den Paperbehältern aussieht.
Ob das MS-API damit umgehen kann steht auf einem anderen Blatt.
Hat Lexmark dazu nichts zu bieten?

Ich hab schon stundenlang im Druckerdialog probiert und gegoogelt, aber nix gefunden. Und ich will auch keine Lexmark-spezifische Lösung, sondern eine, die das Problem auch bei unseren Kunden mit deren Druckern erschlägt, wenn es dort auftritt.

Satty67 22. Mär 2011 21:04

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
Was meldet die API Funktion DeviceCapabilities, wenn DC_BINNAMES bzw. DC_BINS abgefragt wird.

Immer alle installierte oder (insbesondere letzteres) nur die aktuell verfügbaren?

Ersteres ist ja bereits eine Schacht-Liste, weshalb zweiteres eine True/False Liste sein müsste (gibt Word-Array zurück)

uligerhardt 23. Mär 2011 07:50

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Satty67 (Beitrag 1090360)
Was meldet die API Funktion DeviceCapabilities, wenn DC_BINNAMES bzw. DC_BINS abgefragt wird.

Immer alle installierte oder (insbesondere letzteres) nur die aktuell verfügbaren?

Ersteres ist ja bereits eine Schacht-Liste, weshalb zweiteres eine True/False Liste sein müsste (gibt Word-Array zurück)

Beide geben die Liste mit allen Schächten zurück:
Anhang 33694
Das Eingeklammerte kommt von DC_BINS (umgesetzt auf die DMBIN_*-Konstanten, soweit möglich), der Rest von DC_BINNAMES.

Satty67 23. Mär 2011 08:07

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
OK, da hab' ich die Beschreibung zu DC_BINS wohl falsch interpretiert.

Hätte gleich bei MSDN schauen sollen. In der Delphi Hilfe steht zu "dmDefaultSource" nur Reserved. Bei MSDN, dass der Wert ein Flag für den BiN-Typ ist (Sorry)

uligerhardt 23. Mär 2011 08:24

AW: Druckerschächte / "Inkompatible Druckeinstellungen"
 
Zitat:

Zitat von Satty67 (Beitrag 1090399)
OK, da hab' ich die Beschreibung zu DC_BINS wohl falsch interpretiert.

Hätte gleich bei MSDN schauen sollen. In der Delphi Hilfe steht zu "dmDefaultSource" nur Reserved. Bei MSDN, dass der Wert ein Flag für den BiN-Typ ist (Sorry)

Dieser Druckkram ist ja auch verwirrend (um's mal gelinde zu sagen). Eine Wüste aus API, schlecht programmierten Treibern und nicht nachvollziehbaren Fehlern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz