Thema: Delphi Standarddrucker ändern

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Standarddrucker ändern

  Alt 5. Jul 2007, 09:56
Lange ist es her, aber ich habe jetzt bei einem Kunden mit genau dieser Funktionen ein Problem gehabt, welches zum Absturz der Gesamtanwendung geführt hat. Die Lösung liegt im SendMessage, anstatt einfach folgende Änderung (zzgl. einiger Anpassungen as needed bei mir)
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;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat