Как прочитать или установить принтер по умолчанию

Советы » Принтеры и Печать » Как прочитать или установить принтер по умолчанию

uses

Printers, Messages; function

GetDefaultPrinter: string

; var

ResStr: array

[0..255] of

Char; begin

GetProfileString('Windows', 'device', '', ResStr, 255); Result := StrPas(ResStr); end

; procedure

SetDefaultPrinter1(NewDefPrinter: string

); var

ResStr: array

[0..255] of

Char; begin

StrPCopy(ResStr, NewdefPrinter); WriteProfileString('windows', 'device', ResStr); StrCopy(ResStr, 'windows'); SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@ResStr)); end

; procedure

SetDefaultPrinter2(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 = 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

; procedure

TForm1.Button1Click(Sender: TObject); begin

label1.Caption := GetDefaultPrinter2; end

; //Fill the combobox with all available printers procedure

TForm1.FormCreate(Sender: TObject); begin

Combobox1.Items.Clear; Combobox1.Items.AddStrings(Printer.Printers); end

; //Set the selected printer in the combobox as default printer procedure

TForm1.Button2Click(Sender: TObject); begin

SetDefaultPrinter(Combobox1.Text); end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com