Dim $sDOMAIN,$sSpooler
$sDOMAIN="westcare"
$sSpooler="\\wcps1\"
; ----------------------------INI printer handing start--------------------------
$ID = Left(@WKSTA, 4)
$PrinterList = Split(ReadProfileString('C:\printers.ini', $ID, 'Printers'), ';')
$DefPrinter = ReadProfileString('C:\printers.ini', $ID, 'Default')
For Each $Printer in $PrinterList
myAddPrinter($Printer)
Next
If $DefPrinter mySetDefaultPrinter($DefPrinter) EndIf
; ----------------------------INI printer handing end----------------------------
; --------------------------Group printer handing start--------------------------
;set index to 0 for looping through groups
$iIndex = 0
;get first group name
$sGroup=EnumGroup($Index)
While Len($sGroup) AND @ERROR=0
;if group name starts with print- or printd-
If (InStr($sGroup,$sDOMAIN+"\print-")=1) OR (InStr($sGroup,$sDOMAIN+"\printd-")=1)
$sPrinter=SubStr($sGroup,InStr($sGroup,"-")+1) ; Note, this won't work if you have "-" in the domain name
myAddPrinter($sSpooler+$sPrinter)
; Try and set the printer as default if requested
If InStr($sGroup,$sDOMAIN+"\printd-")=1 mySetDefaultPrinter($sSpooler+$sPrinter) EndIf
EndIf
$iIndex=$iIndex+1 ;increase the loop counter by 1
$sGroup=EnumGroup($iIndex) ;get next group name
; loop until end of groups list
Loop
; --------------------------Group printer handing end----------------------------
; -------------------------User defined function start---------------------------
Function myAddPrinter($sPath)
; Static variable, implemented as global
If Not IsDeclared($__DonePrinters) Global $__DonePrinters $__DonePrinters=@CRLF EndIf
If InStr($__DonePrinters,@CRLF+$sPath+@CRLF)
; Printer has already been added - no point in doing it again.
Else
; Add printer and make sure it’s successful
If AddPrinterConnection($sPath)
; Display error message and text
"Error Adding Printer: "+$ssPath+@CRLF
"Error: "+@SERROR+@CRLF
Else
"Added printer: "+$sPath+@CRLF ; Display success message
$__DonePrinters=$__DonePrinters+$sPath+@CRLF ; Record success
EndIf
EndIf
EndFunction
Function mySetDefaultPrinter($sPath)
; Static variables, implemented as globals
If Not IsDeclared($__DonePrinters) Global $__DonePrinters $__DonePrinters=@CRLF EndIf
If Not IsDeclared($__DoneDefault) Global $__DoneDefault $__DoneDefault=0 EndIf
; If the printer was added OK and we have not already set the default...
If InStr($__DonePrinters,@CRLF+$sPath+@CRLF) AND $__DoneDefault=0
If SetDefaultPrinter($sPath)
; Display error message and text
"Error Setting Default Printer: "+$sPath+@CRLF
"Error: "+@SERROR+@CRLF
Else
"Set default to: "+$sPath+@CRLF ; Display success message.
$__DoneDefault=1
EndIf
EndIf
EndFunction
; -------------------------User defined function end-----------------------------