Install a new printer on the system:
http://www.devx.com/vb2themax/Tip/19284
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
' Install a new printer on the system
' sPrinterName is the name to assign to identify the printer
' sDriver is a string identifying the driver for the printer
' sPort is the printer's COM port
' sComment is a comment to associate to the printer item
'
' Example:
' Dim bOK As Boolean
' bOK = InstallPrinter("Epson", "Epson Stylus COLOR 440", "LPT1:", ,
' "My favourite printer")
' MsgBox "Printer added: " & 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
' fill the PRINTER_INFO_2 struct
With PI
.pPrinterName = sPrinterName
.pDriverName = sDriver
.pPortName = sPort
.pServerName = sServer
.pComment = sComment
.pPrintProcessor = "WinPrint"
.Priority = 1
.DefaultPriority = 1
.pDatatype = "RAW"
End With
' add the printer
hPrinter = AddPrinter(sServer, 2, PI)
' if successful close the printer and return True
If hPrinter <> 0 Then
ClosePrinter hPrinter
InstallPrinter = True
End If
End Function