Lonkero
KiX Master Guru
   
Registered: 2001-06-05
Posts: 22346
Loc: OK
|
k, scanned the whole script and now it should work.
;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','','') ;cleans old data $priReg=split($priReg,'\\') FOR $i=1 to ubound($priReg) $rc=WRITEPROFILESTRING($ps,'Printers',$i,'\\'+$priReg[$i]) NEXT ENDIF
;CHECK FOR THE DEFAULT PRINTER SELECT CASE INSTR($nptr,'\\') ;WRITE THE PRINTER TO THE CONFIG AS THE LOCAL NET PRINTER MAY HAVE CHANGED $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 INSTALLED, BUT WE WANT TO REMOVE ANY NETWORK MAPPING INSTR($nptr,'LPT') AND READVALUE($loc,'RemotePath')<>'' USE LPT1: /delete /persistent ENDSELECT
_________________________
!download KiXnet
|