Hallo liebe Community,
diesmal stehe ich vor einem sehr komischen Problem.
Ich lese in einem Programm den Druckertreiber aus, um herauszufinden, ob Duplex aktiviert ist. Dies mache ich über die Windows
API Funktion:
Delphi-Quellcode:
function CanDuplex: Boolean;
var
Device: array [0..255] of Char;
Driver: array [0..255] of Char;
Port: array [0..255] of Char;
hDevMode: THandle;
pDevMode: PDeviceMode;
begin
Result := False;
Printer.GetPrinter(Device, Driver, Port, hDevMode);
pDevMode := GlobalLock(hDevMode);
if pDevMode.dmDuplex <> DMDUP_SIMPLEX then
begin
Result := True;
end;
GlobalUnlock(hDevMode);
end;
Dies hat bisher immer einwandfrei funktioniert. Ein Kunde mit einem KONICA MINOLTA als Drucker, berichtete mir, dass die Erkennung, ob Duplex eingeschaltet ist nicht funktioniert. Egal ob Duplex im Treiber aktiviert wurde oder nicht, die Abfrage gab immer DMDUP_SIMPLEX zurück.
Meine Vermutung ist, das das Standard Duplex Flag über den Treiber nicht gesetzt wird, sondern irgendwo in den Tiefen des dmDriverExtra-Data Bereich abgespeichert wird. Blos wie komme ich da ran? Hat jemand eine Idee, was man noch abfragen muss/könnte, um die Information ordnungsgemäß zu erhalten?
Für Hilfen und Anregungen wäre ich sehr dankbar.
Viele Grüße,
WiPhi
Wer sucht, der findet. Wer länger sucht, findet mehr.