Instalace nové tiskárny

Procedura:
Private Type PRINTER_INFO_2
    pServerName As String
    pPrinterName As String
    pShareName As String
    pPortName As String
    pDriverName As String
    pComment As String
    pLocation As String
    pDevMode As Long
    pSepFile As String
    pPrintProcessor As String
    pDatatype As String
    pParameters As String
    pSecurityDescriptor As Long
    Attributes As Long
    Priority As Long
    DefaultPriority As Long
    StartTime As Long
    UntilTime As Long
    Status As Long
    cJobs As Long
    AveragePPM As Long
End Type

Private Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" _
    (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As _
    Long) As Long

' Parametry:
'   sPrinterName: jméno, které bude tiskárně přiřazeno
'   sDriver: řetězec, identifikující ovladač tiskárny
'   sPort:  COM port tiskárny
'   sComment: Poznámka
'
' Příklad:
'    Dim bOK As Boolean
'    bOK = InstallPrinter("Epson", "Epson Stylus COLOR 440", "LPT1:", ,
'  "Test VB přidání")
'    MsgBox "Tiskárna přidána: " & bOK


Function InstallPrinter(ByVal sPrinterName As String, ByVal sDriver As String, _
    Optional ByVal sPort As String = "LPT1:", Optional sServer As String, _
    Optional sComment As String) As Boolean
    Dim hPrinter As Long
    Dim PI As PRINTER_INFO_2
    
    ' Naplnění struktury PRINTER_INFO_2
    With PI
        .pPrinterName = sPrinterName
        .pDriverName = sDriver
        .pPortName = sPort
        .pServerName = sServer
        .pComment = sComment
        .pPrintProcessor = "WinPrint"
        .Priority = 1
        .DefaultPriority = 1
        .pDatatype = "RAW"
    End With
    
    ' Přidání tiskárny
    hPrinter = AddPrinter(sServer, 2, PI)
    ' Pokud byla akce úspěšná, zavřeme handl a vrátíme True
    If hPrinter <> 0 Then
        ClosePrinter hPrinter
        InstallPrinter = True
    End If

End Function

Zpět

Autor: The Bozena