k, newist one with old postprep engine (no tabs support [Frown] )



;Re-Write of http://www.kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=2;t=004308 By lonkero & kdyer
;Re-Write of http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=10;t=000021

;Default Printer Configuration
;This is to capture the Default Printer and get all network defined printers as well
;Ref. http://www.kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=006790
;Ref. http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=12;t=000221

$loc='HKEY_CURRENT_USER\Network\LPT1'
$reg='HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion'
$dev=$reg+'\Devices'
$ptr=$reg+'\Windows'
$nptr=READVALUE($ptr,'Device')
$lpt=split($nptr,',')[0]
$sysdrv=SUBSTR('%WINDIR%',1,2)
dim $priReg$x$i$rc$ps

IF EXIST('H:')
 $ps='H:\Scripts_DO_NOT_DELETE'
ELSE
 $ps=$sysdrv+'\Scripts'
ENDIF
IF 0=EXIST($ps)
 MD $ps
ENDIF
$ps=$ps+'\Printsetup.ini'

$i=0
DO
 IF '\\'=LEFT($x,2)
  $priReg=$priReg+$x
 ENDIF
 $x=ENUMVALUE($dev,$i)
 $i=$i+1
UNTIL @error

IF LEN($priReg)
 $rc=WRITEPROFILESTRING($ps,'Printers','','')
 $priReg=split($priReg,'\\')
 FOR $i=1 to ubound($priReg)
  $rc=WRITEPROFILESTRING($ps,'Printers',$i,'\\'+$priReg[$i])
 NEXT
ENDIF

SELECT
 CASE 
  INSTR($nptr,'\\')
  ;WRITE THE DEFAULT PRINTER TO THE CONFIG
  $rc=WRITEPROFILESTRING($ps,'Printers','Default',$lpt)
  USE LPT1: /delete /persistent
  USE LPT1: $lpt /persistent
 CASE
  $nptr='' AND EXIST($ps)
  ;NO DEFAULT PRINTER, LOAD PRINTERS FROM SAVED INFO
  FOR EACH $key IN split(readprofilestring($ps,'Printers',''),chr(10))
   $nul=addprinterconnection(readprofilestring($ps,'Printers',$key))
  NEXT
  $lpt=READPROFILESTRING($ps,'Printers','Default')
  $rc=SETDEFAULTPRINTER($lpt)
  USE LPT1: $lpt /persistent
 CASE
  ;LOCAL PRINTER DEFAULT, SO WE WANT TO REMOVE ANY NETWORK MAPPING
  NOT INSTR($nptr,'\\')
  USE LPT1: /delete /persistent
ENDSELECT

_________________________
!

download KiXnet