Hallo zusammen.
habe ein Problem mit der Funktion Printer.Getprinter - es geht darum, die DEVMODE Structure eines Druckers auslesen. Der Code hierzu ist:
Delphi-Quellcode:
Procedure ReadPrinterMode;
type
TPrinter_Mode = record
Pdm : Devmode;
Extra : array[1..20000] of byte;
end;
var
tmpPrinterMode : TPrinterMode;
hDevMode : THandle;
PDevMode : PDeviceMode;
i : integer;
Device, Driver, Port: array[0..1023] of char;
begin
Result:=false;
Printer.GetPrinter(Device,Driver,Port,hDevMode);
if hDevMode<>0 then
begin
PDevMode:=GlobalLock(hDevMode);
if pDevMode<>nil then
begin
move(pDevMode^,tmpPrinterMode,pDevMode^.dmSize+pDevMode^.dmDriverExtra);
GlobalUnlock(hDevMode);
Result:=true;
end;
end;
Soweit funktioniert das ganze - wird jetzt aber der Drucker mit Printer.PrinterIndex gewechselt, wird bei erneutem Aufruf der Funktion die Devmode Struktur nicht aktualisiert. Hier ist weiterhin der Standarddrucker enthalten. Device hingegen enthält den korrketen Drucker.
Hat jemand eine Idee? Oder vielleicht eine alternative Idee, um die Daten auszulesen?
Ich hoffe, ich habe die richtige Kategorie erwischt.