如果计算机上有两台打印机,一台是惠普,一台是三星的,我如何才能实现:按第一个按钮,计算机启动一台打印机,按第二个按钮,计算机启动另一台打印机
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;

解决方案 »

  1.   

    请问如果一台电脑有两台打印机,或者曾经安装过好几台打印机,怎样设置默认打印机? 
    主要解答者: 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;  
     
     
    ---------------------------------------------------------------