>lcMessage = '' >if addPrinter('\\PRINTSERVER\FRIENDLY PRINTER NAME', @lcMessage) > ? 'Printer installed. Driver used: ' + lcMessage >else > ? 'Printer was not installed, the reason was: ' + lcMessage >endif > >function addPrinter(tcPrinter, tcMessage) >local loWMI, loPrinterClass, loPrinter, lnReturn, lcMessage, llMessage > >llMessage = pcount() = 2 >if Vartype(tcPrinter) # 'C' or Empty(tcPrinter) > if llMessage > tcMessage = 'Printer name is mandatory' > endif > return -1 >endif > >loWMI = Getobject('WinMgmts:') >loPrinterClass = loWMI.Get('Win32_Printer') >lnResult = loPrinterClass.AddPrinterConnection(tcPrinter) >do case >case lnResult = 0 > loPrinter = loWMI.Get('Win32_Printer.deviceID="' + Strtran(tcPrinter, '\', '\\') + '"') > lcMessage = loPrinter.DriverName >case lnResult = 5 > lcMessage = 'Access denied' >case lnResult = 1797 > lcMessage = 'The printer driver is unknown' >case lnResult = 1801 > lcMessage = 'Invalid printer name' >case lnResult = 1930 > lcMessage = 'Incompatible printer driver' >otherwise > lcMessage = 'Unknown Error(' + Transform(lnResult) + ')' >endcase > >tcMessage = lcMessage >return lnResult = 0 >>
>loWMI = Getobject('WinMgmts:') >>replace it with
>loLocator = createobject('WbemScripting.SWbemLocator') >loWMI = loLocator.ConnectServer() >