用vb控制两台打印机同时打印,不需要设置打印机的打印首选项
怎么解决啊
急等???、
两台打印机是一样的(usb)

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim prt As Printer
        For Each prt In Printers
            If prt.DeviceName = "aaa" Then
                prt.Print "123"
            ElseIf prt.DeviceName = "bbb" Then
                prt.Print "345"
            End If
        Next
    End Sub
      

  2.   

    Printers(index)Printers 集合可用来查询可用的打印机,这样就可以为应用程序指定一台缺省打印机。例如也许要找出哪些可用打印机用了指定的打印驱动程序。下面的代码查找所有的可用打印机,定位在第一个将页码方向设置为纵向的打印机,然后将其设置为 Portrait。Dim X As Printer
    For Each X In Printers
       If X.Orientation = vbPRORPortrait Then
          '设定为系统缺省打印机。
          Set Printer = X
          ' 终止查找打印机。
          Exit For
       End If
    Next用 Set 语句指定 Printers 集合中的某一打印机为缺省打印机。前面的示例指定由对象变量 X 标识的打印机为应用程序的缺省打印机。注意 如果用 Printers 集合来确定某一特定打印机,如 Printers(3),则只能访问只读属性。如果想访问个别打印机的可读写属性,那么首先要使那个打印机成为应用程序的缺省打印机。
      

  3.   

    open "usb001" for output as #1
    printer.print
    close #1
    open "usb002" for output as #2
    printer.print
    close #2
      

  4.   

    5楼的代码没试过
    我自己用的方法正好是1楼和3楼的合并:
    SUB SELECTPRINTER(BYVAL PRINTERNAME AS STRING)
    DIM PRT AS PRINTER
    For Each PRT IN PRINTERS
      IF PRT.DEVICENAME = PRINTERNAME  THEN
          Set PRINTER = PRT
          Exit For
      End If
    Next
    END SUB
    假设你的电脑上有打印机:PRT001和PRT002
    你可以用SELECTPRINTER "PRT001"
    和 SELECTPRINTER "PRT002"
    来分别选择这两个打印机
    当然,你也可以先用一个循环将本机所有打印机添加到一个COMBO控件里供用户选择:
    SUB LISTPRINTERS()
    DIM PRT AS PRINTER
    FOR EACH PRT IN PRINTERS
       COMBO1.ADDITEM PRT.DEVICENAME
    NEXT
    END SUB
    这样的话,只要这样调用:
    SELECTPRINTER COMBO1.TEXT
    就可以选择打印机了