Kdyer
KiX Supporter
   
Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
|
Jooel,
Thank you for your feedback.
Here is the code at this point:
CLS BREAK ON ;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=SUBSTR($nptr,1,INSTR($nptr,',')-1) $sysdrv=SUBSTR('%WINDIR%',1,2) IF EXIST('H:') $ps='H:\Scripts_DO_NOT_DELETE\Printsetup.ini' IF 0=EXIST('H:\Scripts_DO_NOT_DELETE') MD 'H:\Scripts_DO_NOT_DELETE' ENDIF ELSE $ps=$sysdrv+'\Scripts\Printsetup.ini' IF 0=EXIST($sysdrv+'\Scripts') MD $sysdrv+'\Scripts' ENDIF ENDIF
$index=0 DO IF '\\'=LEFT($x,2) $priReg=$priReg+$x ENDIF $index=$index+1 $x=ENUMVALUE($dev,$index) UNTIL @error=0 OR NOT LEN($x)
IF LEN($priReg) IF EXIST($ps) DEL $ps ENDIF FOR EACH $x IN SPLIT(SUBSTR($priReg,3),'\\') $rc=WRITEPROFILESTRING($ps,'Printers',$index,'\\'+$x) 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) $lpt1=READPROFILESTRING($ps,'Printers','Default') USE LPT1: /delete /persistent USE LPT1: $lpt1 /persistent CASE $nptr='' AND EXIST($ps) FOR EACH $key IN split(readprofilestring($ps,'Printers',''),chr(10)) $nul=addprinterconnection(readprofilestring($ps,'Printers',$key)) NEXT $rc=SETDEFAULTPRINTER(READPROFILESTRING($ps,'Printers','Default')) USE LPT1: $lpt1 /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 RETURN
Kent
|