capturar impressoras instaladas
eu gostaria de capituar as impressoras instaladas e jogar num combobox...como faço?
Rafael Santana
Curtidas 0
Respostas
Massuda
08/11/2005
uses Printers, ... SeuComboBox.Items.AddStrings(Printer.Printers); ...
GOSTEI 0
Siam
08/11/2005
uses Printers;
var i:Integer; begin for i := 0 to Printer.Printers.Count-1 do ... end;
GOSTEI 0
Rafael Santana
08/11/2005
OBRIGADO PESSOAL...
MAS
como eu faço agora, pra pegar essa impressoras e deixar uma delas como padrão? no caso seria a propriedade COMBOBOX.ITEMINDEX = 0
eu preciso que a impressora que estiver nesta posição do combobox seja utilizada pelo meu sistema, na hora de imprimir
MAS
como eu faço agora, pra pegar essa impressoras e deixar uma delas como padrão? no caso seria a propriedade COMBOBOX.ITEMINDEX = 0
eu preciso que a impressora que estiver nesta posição do combobox seja utilizada pelo meu sistema, na hora de imprimir
GOSTEI 0
Siam
08/11/2005
http://delphi.about.com/cs/adptips2001/a/bltip1001_5.htm
GOSTEI 0
Adriano Santos
08/11/2005
Tem só um errinho no fonte do cara.
Na linha onde ele atribui o novo valor para o PrinterIndex. O nome da variável correta é [b:90e4d04ffc]J[/b:90e4d04ffc] e não [b:90e4d04ffc]I[/b:90e4d04ffc]:
O teste completo segue abaixo:
procedure SetDefaultPrinter(PrinterName: string); var j: 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; for j := 0 to Printer.printers.Count - 1 do begin if Printer.printers[j] = PrinterName then begin aprinter.printerindex := j; 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; Freemem(Device, 255); Freemem(Driver, 255); Freemem(Port, 255); aPrinter.Free; end;
Na linha onde ele atribui o novo valor para o PrinterIndex. O nome da variável correta é [b:90e4d04ffc]J[/b:90e4d04ffc] e não [b:90e4d04ffc]I[/b:90e4d04ffc]:
... aprinter.printerindex := J; ...
O teste completo segue abaixo:
procedure TForm1.Button1Click(Sender: TObject); procedure SetDefaultPrinter(PrinterName: string); var j: 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; for j := 0 to Printer.printers.Count - 1 do begin if Printer.printers[j] = PrinterName then begin aprinter.printerindex := j; 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; Freemem(Device, 255); Freemem(Driver, 255); Freemem(Port, 255); aPrinter.Free; end; begin SetDefaultPrinter(ComboBox1.Items[ComboBox1.ItemIndex]); end;
GOSTEI 0
Ricardo
08/11/2005
qual o código em delphi para diferenciar impressões coloridas e preto e branco..
GOSTEI 0