printer本身就是个VB自定义的数据,可以直接调用,不必声明变量以表示。
例如:printer.fontsize=18
printer.print "Hello!! Hello!!"打印机为默认打印机。

解决方案 »

  1.   


    Dim Prn as Printer
        For Each Prn In Printers
            Combo1.AddItem Prn.DeviceName
        Next Prn
    Set Printer = trim(Combo1.Text)
      

  2.   

    'API函数声明
    Const HWND_BROADCAST = &HFFFF&
    Const WM_WININICHANGE = &H1APrivate 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 LongPrivate Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub btnChangePrinter_Click()    PrinterName = Text1.Text '您想设定的打印机名称
        Dim S As String, length As Long, hKey As Long
        
        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")End Sub
      

  3.   

    'API函数声明
    Const HWND_BROADCAST = &HFFFF&
    Const WM_WININICHANGE = &H1APrivate 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 LongPrivate Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub btnChangePrinter_Click()    PrinterName = Combo1.Text '您想设定的打印机名称
        Dim S As String, length As Long, hKey As Long
        
        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")End SubPrivate Sub Form_Load()
    Dim Prn As Printer
        For Each Prn In Printers
            Combo1.AddItem Prn.DeviceName
        Next Prn
        Combo1.ListIndex = 0
    End Sub