http://expert.csdn.net/Expert/topic/2088/2088400.xml?temp=.6312525
因为程序需要,一台打印机打印发票,一台打印单据。我已经装上两台打印机一台打印机名是
Epson_1,另一台打印机名是Epson_2.
同一时刻用用Epson_1 打印发票,用Epson_2打印单据?
有些大侠说通过修改注册表修改默认的打印机。
但是怎么改啊?
或者有更加好的方法?请指教?

解决方案 »

  1.   

    参考下面的程序,其中ComboBox1的index为打印机的printerindex
    procedure tpub_dm.printerview(ComboBox1:TTeThemeComboBox);
        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
      //messagebeep(2);
      beep();
      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));
      ComboBox1.Items := Printer.Printers; {populates ComboBox}
      ComboBox1.ItemIndex := Printer.PrinterIndex;
      end;
      

  2.   

    谢谢,第一楼的,但是在改默认打印机的时候CPU资源占用率达到100%(我用的是WIN2000),这一两秒时间,客户不会容忍的,而且打玩以后还要改回来,又要一到两秒的CPU占用100%。这几秒时间很容易死机之类的。有无些方法可以直接指定打印机的?需要A时用A打印,需要B时用B打印。
      

  3.   

    CYG369(快乐的单身汗) :
    已经买了,现在要的是在delphi代码中控制打印机啊?有无些方法可以直接指定打印机的?需要A打印机时用A打印,需要B打印机时用B打印。