![]() |
StandardDrucker setzten
Hallo zusammen,
ich setzte den Standardrucker von Windows mit folgendem Code:
Code:
Dies klappt auch wunderbar und in der Systemsteuerung--> Drucker ist der Standarddrucker geändert.
procedure TForm1.MySetDefaultPrinter2(PrinterName: String);
var I: Integer; Device: PChar; Driver: PChar; Port : PChar; HdeviceMode: THandle; aPrinter: TPrinter; begin Printer.PrinterIndex := -1; GetMem(Device, 255); GetMem(Driver, 255); GetMem(Port, 255); aPrinter := TPrinter.Create; try for I := 0 to Printer.Printers.Count -1 do begin if Printer.Printers.Strings[I] = PrinterName then begin aPrinter.PrinterIndex := I; aPrinter.GetPrinter(device, driver, port, HdeviceMode); StrCat(Device, ','); StrCat(Device, Driver); StrCat(Device, Port); WriteProfileString('windows', 'device', Device); StrCopy(Device, 'windows'); SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@Device)); end; end; finally aPrinter.Free; end; FreeMem(Device, 255); FreeMem(Driver, 255); FreeMem(Port, 255); end; Wenn ich anschliessend gleich folgenden Code starte erhalte ich immer eine Fehlermeldung, dass kein Drucker installiert ist.
Code:
Der Auschschnitt im Code sieht folgendermassen aus:
shellexecute (application.Handle,'print',PChar('C:\Test\Test.doc'),nil,nil,SW_SHOWNORMAL);
Code:
Weiss jemand wiso diese Fehlermeldung auftaucht??
procedure TForm1.Button1Click(Sender: TObject);
begin MySetDefaultPrinter2('FreePDF XP'); shellexecute (application.Handle,'print',PChar('C:\Test\Test.doc'),nil,nil,SW_SHOWNORMAL); end; PS: Wenn der Drucker durch Delphi gewechselt wurde und in einem beliebigen anderen Programm drucken möchte, geschiedt dies erfolgreich auf dem neuen Standarddrucker. greez eagle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz