Here is some code of a big Kixtart script, which calculates at this point de default_printer name + port for Windows 9x/NT/Y2K environments.code:
$x="" ; - general variable which are used for information -
;
IF (@inwin = 1)
$NT_mode="yes"
ELSE
$NT_mode="no"
ENDIF
;
$default_printer=""
$default_port=""
$defprt=""
;
$ikey="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows"
IF (ExistKey($ikey) = 0) ; - NT -
$default_printer=ReadValue($ikey, "device")
$default_port=""
IF (INSTR(LCASE($default_printer),",lpt") <> 0)
$default_port=UCASE(substr($default_printer,INSTR(LCASE($default_printer),",lpt")+1,5))
ENDIF
;
IF (len($default_printer) = 0)
$default_printer="NONE"
ENDIF
IF (len($default_port) = 0)
$default_port="NONE"
ENDIF
ENDIF
;
;$ikey="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\IDConfigDB:CurrentConfig" -> "0001"
$ikey="HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers"
IF (ExistKey($ikey) = 0) ; - 95 -
$default_printer=ReadValue($ikey, "default")
$default_port=""
$ikey="HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Print\Printers\"+$default_printer
IF (ExistKey($ikey) = 0)
$default_port=ReadValue($ikey, "Port")
ENDIF
;
IF (len($default_printer) = 0)
$default_printer="NONE"
ENDIF
IF (len($default_port) = 0)
$default_port="NONE"
ENDIF
ENDIF
By this peace of code the variable "$defprt" is calculated.
code:
$defprt=""
IF (len($default_port) <> 0)
IF (INSTR(LCASE($default_port),"lpt") = 0)
$defprt=$defprt+"'"+$default_port+"'"
ELSE
$defprt=$defprt+UCASE($default_port)
ENDIF
$defprt=$defprt+" "
ENDIF
IF (len($default_printer) <> 0)
$defprt=$defprt+"'"
IF (INSTR($default_printer,",") <> 0)
$defprt=$defprt+substr($default_printer,1,INSTR($default_printer,',')-1)
ELSE
$defprt=$defprt+$default_printer
ENDIF
$defprt=$defprt+"'"
ELSE
$defprt=$defprt+"'NONE'"
ENDIF
code:
f.e. '\\FD71001\No03' 'NO03_HP_LJ_5M'
Try it. Greetings.
[This message has been edited by MCA (edited 01 May 2000).]