Get default printer information : Printer « Windows API « VBA / Excel / Access / Word






Get default printer information

 

Private Declare Function GetProfileStringA Lib "kernel32" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Sub DefaultPrinterInfo()
    Dim strLPT As String * 255
    Dim Result As String
    Call GetProfileStringA ("Windows", "Device", "", strLPT, 254)
    
    Result = Application.Trim(strLPT)
    ResultLength = Len(Result)

    Comma1 = Application.Find(",", Result, 1)
    Comma2 = Application.Find(",", Result, Comma1 + 1)

'   Gets printer's name
    Printer = Left(Result, Comma1 - 1)

'   Gets driver
    Driver = Mid(Result, Comma1 + 1, Comma2 - Comma1 - 1)

'   Gets last part of device line
    Port = Right(Result, ResultLength - Comma2)

    Debug.Print Printer
    Debug.Print Driver
    Debug.Print Port

End Sub

 








Related examples in the same category

1.The Printer Object
2.The Printers Collection
3.Loop through all printer
4.Modify Printer Settings