Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Windows API / MS.NET Framework API (https://www.delphipraxis.net/20-library-windows-api-ms-net-framework-api/)
-   -   Delphi Standarddrucker setzen (https://www.delphipraxis.net/95334-standarddrucker-setzen.html)

sakura 5. Jul 2007 09:59


Standarddrucker setzen
 
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;
...:cat:...

[edit=CalganX]Win32-Klassifizierung hinzugefügt. Mfg, CalganX[/edit]
[edit=fkerber]kleinen Schreibfehler im Code verbessert. Mfg, fkerber[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz