Home » Tipps & Tricks » Drucker » Druckereigenschaften » Standarddrucker setzen

Standarddrucker setzen

Mit Hilfe dieser Funktion/Procedure kannst Du den Standarddrucker im System festlegen:
Diese Procedure setzt den Standarddrucker. Als Parameter muss die Bezeichnung des Druckers übergeben werden:

procedure SetDefaultPrinter(NewDefPrinter : string);
  var
  ResStr : array[0..255] of char;

begin
  StrPCopy(ResStr,NewdefPrinter);
  WriteProfileString ('windows', 'device', ResStr);
  StrCopy (ResStr, 'windows');
  SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@ResStr));
end;

Die Bezeichnungen lassen sich mit dieser Funktion ermitteln:

function GetPrinterStrFromIndex(index : integer) : string;
var
  pri : integer;
  hDeviceMode : THandle;
  Device,Driver,Port : array[0..255] of char;
  s,ResStr : array[0..255] of char;

begin
  pri:=Printer.PrinterIndex;
  Printer.PrinterIndex:=index;
  Printer.GetPrinter(Device,Driver,Port,hDeviceMode);
  // Arbeitet nicht richtig, deswegen korrekten String aus WIN.INI abfragen
  GetProfileString('Devices',Device,'',ResStr,255);
  StrCopy (s, Device);
  StrCat (s, ',');
  StrCat (s, ResStr);
  Result:=string(s);
  Printer.PrinterIndex:=pri;
end;

Es muss zusätzlich noch die Unit Printers eingefügt werden.