Olá Pessoal tudo bem? um amigo mim passou um codigo
mais so que quando mando imprimir o programa imprimi e depois coloca aquela impressora selecionada no combobox como padrão , mais eu quero so que ela imprima na impressora selecionada e não ponha ela como padrão apos imprimir
procedure TFPrinc.SetDefaultPrinter(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;
for I := 0 to Printer.printers.Count-1 do
begin
if Printer.printers[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;
Freemem(Device, 255);
Freemem(Driver, 255);
Freemem(Port, 255);
aPrinter.Free;
end;
Pergunta
Josinaldo Fernandes
Olá Pessoal tudo bem? um amigo mim passou um codigo
mais so que quando mando imprimir o programa imprimi e depois coloca aquela impressora selecionada no combobox como padrão , mais eu quero so que ela imprima na impressora selecionada e não ponha ela como padrão apos imprimir
procedure TFPrinc.SetDefaultPrinter(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; for I := 0 to Printer.printers.Count-1 do begin if Printer.printers[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; Freemem(Device, 255); Freemem(Driver, 255); Freemem(Port, 255); aPrinter.Free; end;Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.