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
|