如果计算机上有两台打印机,一台是惠普,一台是三星的,我如何才能实现:按第一个按钮,计算机启动一台打印机,按第二个按钮,计算机启动另一台打印机
procedure TForm1.Button1Click(Sender: TObject);
begin
BeginDoc;
Printer.Canvas.TextOut(100,100,'从惠普打印机输出!!');
EndDoc;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
BeginDoc;
Printer.Canvas.TextOut(100,100,'从三星打印机输出!!');
EndDoc;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BeginDoc;
Printer.Canvas.TextOut(100,100,'从惠普打印机输出!!');
EndDoc;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
BeginDoc;
Printer.Canvas.TextOut(100,100,'从三星打印机输出!!');
EndDoc;
end;
主要解答者: lovedata 提交人: lovedata
感谢: hch_45、47522341、lovedata、shanxia、yxl2000
审核者: ihihonline 社区对应贴子: 查看
A : 如题~
---------------------------------------------------------------
到开始-设置-打印机-选择打印机-设置为默认 (好像在右键)
---------------------------------------------------------------
右键点击不是有个【设为默认值】选项吗?
---------------------------------------------------------------
//这一段我放到窗体的创建里了,个人随意的东西
procedure TForm1.formcreate(Sender: TObject);
begin
ComboBox1.Items := Printer.Printers;
ComboBox1.ItemIndex := Printer.PrinterIndex;
end;
//随便放到哪个按钮里就行了
procedure TForm1.Button1Click(Sender: TObject);
var
Device: array[0..255] of Char;
Driver: array[0..255] of char;
Port: array[0..255] of char;
s : array[0..255] of Char;
hDeviceMode: THandle;
begin
Printer.PrinterIndex := ComboBox1.ItemIndex;
Printer.GetPrinter (Device, Driver, Port, hDeviceMode);
StrCopy (s, Device);
StrCat (s, ',');
StrCat (s, Driver);
StrCat (s, ',');
StrCat (s, Port);
WriteProfileString ('windows', 'device', s);
StrCopy (s, 'windows');
SendMessage (HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@s));
end;
---------------------------------------------------------------