![]() |
Standart Drucker setzen
Hi DPler
Mal ne Frage wie geht es am einfachsten in Windows den Standard Drucker zu setzen? Jemand ideen? |
Re: Standart Drucker setzen
Ich nutz dazu folgenden Code... Einfach die Eigenschaft SetDefaultPrinterName setzen und lesen.
Delphi-Quellcode:
unit PrinterSettings;
interface uses windows, sysutils, classes, messages ; function GetDefaultPrinterA(prnName : PAnsiChar; var bufSize : DWORD ) : BOOL; stdcall; external 'winspool.drv' name 'GetDefaultPrinterA'; type TPrinterSettings = class private function getDefaultPrinterName: string; procedure SetDefaultPrinterName(const Value: string); public property DefaultPrinterName : string read GetDefaultPrinterName write SetDefaultPrinterName ; end ; var PS : TPrinterSettings ; implementation uses printers ; function TPrinterSettings.getDefaultPrinterName:string; begin try Result := Printer.Printers[Printers.Printer.PrinterIndex] ; except Result := '' ; end ; end; procedure TPrinterSettings.SetDefaultPrinterName(const Value: string); var Device: array[0..255] of char; Driver: array[0..255] of char; Port: array[0..255] of char; hDeviceMode: THandle; begin if Printer.Printers.IndexOf (Value) >= 0 then begin Printer.PrinterIndex := Printer.Printers.IndexOf (Value) ; Printer.GetPrinter(Device, Driver, Port, hDeviceMode); StrCat( Device, ','); StrCat( Device, Driver ); StrCat( Device, ','); StrCat( Device, Port ); WriteProfileString( 'windows', 'device', Device ); StrCopy( Device, 'windows' ); SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0, longint( @Device )); sleep (300) ; end else begin end ; end; initialization PS := TPrinterSettings.create ; finalization PS.free ; end. |
Re: Standart Drucker setzen
Zitat:
![]()
Delphi-Quellcode:
Ich nehme an, dass Du nach so etwas gefragt hast. Jürgen
Printer.PrinterIndex := -1;
// dadurch setzt Delphi den PrinterIndex auf den Standardwert; // anschließend kann der Drucker abgefragt werden: sAktuellerDrucker := Printer.Printers[Printer.PrinterIndex]; PS. Es heißt "Standard"!!! Nachtrag @Jelly: Zitat:
|
Re: Standart Drucker setzen
@Jürgen: Liest dein Code den Standarddrucker nicht nur aus? Zum Setzen kannst du nicht einfach den Printerindex setzen, oder ?
|
Re: Standart Drucker setzen
danke
funktioniert :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 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