Einzelnen Beitrag anzeigen

knulli

Registriert seit: 18. Sep 2006
6 Beiträge
 
#1

Probleme mit Printer.Getprinter

  Alt 4. Aug 2010, 21:46
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.

Geändert von SirThornberry ( 6. Aug 2010 um 09:37 Uhr) Grund: Delphi-Tags gesetzt - nächstes mal bitte selbst machen
  Mit Zitat antworten Zitat