dcsimg
 

Retreive the VB Object "printer" Corresponding to the Default Printer

Thursday Feb 5th 2004 by Andri Masson

Learn how to retreive the VB object "printer" corresponding to the default printer. (Added: 22-Jun-1999)

Paste the following code into it's own BAS module (or convert it to a class if required)

'MS Windows API Function Prototypes
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

'---------------------------------------------------------------
' Retreive the vb object "printer" corresponding to the window's
' default printer.
'---------------------------------------------------------------
public Function GetDefaultPrinter() as Printer
    Dim strBuffer as string * 254
    Dim iRetValue as Long
    Dim strDefaultPrinterInfo as string
    Dim tblDefaultPrinterInfo() as string
    Dim objPrinter as Printer

    ' Retreive current default printer information
    iRetValue = GetProfileString("windows", "device", ",,,", _
                strBuffer, 254)
    strDefaultPrinterInfo = Left(strBuffer, InStr(strBuffer, Chr(0)) - 1)
    tblDefaultPrinterInfo = Split(strDefaultPrinterInfo, ",")
    for Each objPrinter In Printers
        If objPrinter.DeviceName = tblDefaultPrinterInfo(0) then
            ' Default printer found !
            Exit for
        End If
    next

    ' If not found, return nothing
    If objPrinter.DeviceName <> tblDefaultPrinterInfo(0) then
        set objPrinter = nothing
    End If

    set GetDefaultPrinter = objPrinter
End Function


Now to test the routine, place the following code into a Form_Load routine :


private Sub Form_Load()
    Dim objPrinter as Printer

    set objPrinter = GetDefaultPrinter()
    MsgBox "Default printer is: " + objPrinter.DeviceName
    MsgBox "Driver name is: " + objPrinter.DriverName
    MsgBox "Port is: " + objPrinter.Port

    set objPrinter = nothing
    End
End Sub


Home
Mobile Site | Full Site
Copyright 2018 © QuinStreet Inc. All Rights Reserved