Thema: Delphi Standarddrucker setzen

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#1

Standarddrucker setzen

  Alt 5. Jul 2007, 09:59
Da ich die Funktion überarbeitet habe und die noch gar nicht in der CL existiert, hier mal eine funktionierende Variante den Standarddrucker einzustellen. Übergeben wird der Druckername als String (Unit Printers; Printer.Printers hat eine Liste aller installierten), die Funktion liefert True zurück, wenn der erfolgreich Drucker geändert wurde, ansonsten False.
Delphi-Quellcode:
uses
  WinSpool;

function SetDefaultPrinter(aPrinterName: string): Boolean;
type
  TSetDefaultPrinterA = function (prnName: LPCTSTR): BOOL; stdcall;
var
  WS: HINST;
  SetDefaultPrinterA: TSetDefaultPrinterA;
begin
  WS := GetModuleHandle(PChar(winspl));
  SetDefaultPrinterA := GetProcAddress(WS, 'SetDefaultPrinterA');

  if Assigned(SetDefaultPrinterA) then
  begin
    Result := SetDefaultPrinterA(PChar(aPrinterName));
    if Result then
      SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
  end
  else
  begin
    Result := False;
  end;
end;
......

[edit=CalganX]Win32-Klassifizierung hinzugefügt. Mfg, CalganX[/edit]
[edit=fkerber]kleinen Schreibfehler im Code verbessert. Mfg, fkerber[/edit]
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat