我的电脑上装有两个打印机 一个是并口的 一个是usb口的
我如何通过程序代码随意的向这两个打印机输出文件呢?

解决方案 »

  1.   

    '先显示打印机对话框供用户选择打印机
    commondialog1.showprinter()
    '设置用户选择的打印机为当前打印机
    set printer=commondialog1.object
      

  2.   

    从printers集合中选择!
    Dim X As Printer
    For Each X In Printers
       If X.Orientation = vbPRORPortrait Then
          '设定为系统缺省打印机。
          Set Printer = X
          ' 终止查找打印机。
          Exit For
       End If
    Next
      

  3.   

    Dim X As Printer
    For Each X In Printers
       If X.DeviceName = "AGFA-AccuSet v52.3" Then
          '设定为系统缺省打印机。
          Set Printer = X
          Debug.Print "缺省打印机已经设为AGFA-AccuSet v52.3"
          Exit For
       End If
    Next
      

  4.   

    关键是要找到所有打印机,然后选择需要用的打印机把它设置为默认打印机!
    我也提供个做法
    Const HWND_BROADCAST = &HFFFF&
    Const WM_WININICHANGE = &H1A
    Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
    Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongDim S As String, Length As Long, hKey As Long
    S = String(80, Chr(0))
    PrinterName = "你要选择的打印机名称"
    S = String(80, Chr(0))
    Length = GetProfileString("devices", PrinterName, "", S, Len(S))
    S = Left(S, Length)
    Call WriteProfileString("windows", "device", PrinterName & "," & S)
    Call SendMessage(HWND_BROADCAST, WM_WININICHANGE, &H7FFF&, ByVal "windows")