MCA/Everybody,

[Big Grin] [Big Grin] [Big Grin]

Here is the new version that works with Terminal Server/Citrix. It is not constrained to a C: Drive anymore. [Smile]

Using the Packager/instructions on MCA's Site, this works great!!

install.kix

code:
  CLS
IF setconsole("hide")
ENDIF
;
; NT/95 install kixtart - Kixtart 3.62, 3.63, 4.00, 4.01, 4.02, 4.10
;
; (c) scripting@wanadoo.nl - 2000, 2001, 2002
;
; vs 1.01 - program
;
; 1.00 (20010605) original version. created for IExpress package.
; - split script for with/without debugging.
; - activate $debug_mode when variable %kix-debug% is declared.
; - shows also @curdir value.
; 1.01 (20020725) - Change to used Environment variables and not just C: or C:\Winnt.
;
$prgrm_version="1.01"

; -- Modification - Kent Dyer
; -- Change to make this work for any drive including C:
; -- 25 - July 2002
IF (@inwin = 1) ; -- Is it Winnt/2K/XP?
$windir = READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","SystemRoot")
ELSE
$windir = READVALUE("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","SystemRoot")
ENDIF
$systemdrive = SUBSTR($windir,1,3) ; -- This will show C:\ or M:\ or what drive windows is installed on
;
$debug_mode="no"
IF (len(ExpandEnvironmentVars(CHR(37)+"kix-debug"+CHR(37))) <> 0)
$debug_mode="yes"
ENDIF
;
IF ($debug_mode = "yes")
$message="Installation of Kixtart "+@kix+" started from '"+LCASE(@curdir)+"'."
$title="Kixtart "+@kix
IF (MessageBox($message, $title, 340, 300) <> 0)
ENDIF
? $message
ENDIF
IF ($debug_mode <> "yes")
call "start1.kix"
ELSE
call "start2.kix"
ENDIF
:end
IF (RedirectOutput("CON") = 0)
ENDIF
$debug_mode="no"
IF (len(ExpandEnvironmentVars(CHR(37)+"kix-debug"+CHR(37))) <> 0)
$debug_mode="yes"
ENDIF
;
IF ($debug_mode <> "yes")
? "Informative INSTALL: no creation of debug list $systemdrive+'kixtart.log'"
ELSE
? "Informative INSTALL: create debug list $systemdrive+'kixtart.log'"
IF (Exist($systemdrive+"kix"+substr(@kix,1,1)+substr(@kix,3,2)+".ok") = 1)
$message="Installation of Kixtart "+@kix+" completed from '"+LCASE(@curdir)+"'."
$message=$message+" File '"+UCASE("kix"+substr(@kix,1,1)+substr(@kix,3,2)+".ok")+"' created."
ELSE
$message="Installation of Kixtart "+@kix+" incompleted from '"+LCASE(@curdir)+"'."
$message=$message+" No file '"+UCASE("kix"+substr(@kix,1,1)+substr(@kix,3,2)+".ok")+"' created."
ENDIF
$title="Kixtart "+@kix
IF (MessageBox($message, $title, 340, 300) <> 0)
ENDIF
? $message
ENDIF
break on
flushkb

start1.kix

code:
  cls
break on
IF setconsole("hide")
ENDIF
;
; NT/95 install kixtart - Kixtart 3.62, 3.63, 4.00, 4.01, 4.02, 4.10
;
; (c) scripting@wanadoo.nl - 2000, 2001, 2002
;
; vs 3.04 - program
;
; 1.00 (20000715) original version. created for IExpress package.
; 1.01 (20000715) - additional information written to check-file.
; 1.02 (20000715) - additional information about starting script.
; system tries to find $systemdrive+"\temp\kixtart.dbg" file, which will
; create a info file $systemdrive+"\temp\kixtart.txt".
; automatic remove of $systemdrive+"\temp\kixtart.dbg" + $systemdrive+"\temp\kixtart.txt" by next run.
; - change "source_directory" to $systemdrive+"\temp\ixp000.tmp\",
; because "@curdir" is "@homeshr" directory.
; - CHANGE iexpress package changed. calling command
; "kix32.exe install.kix"
; to
; $systemdrive+"temp\ixp000.tmp\kix32.exe $systemdrive+temp\ixp000.tmp\install.kix".
; sometime actual drive isn't correct.
; 1.03 (20000730) - add HKCR registry entries to 'edit', 'run', 'run debug' + 'print' kixtart scripts.
; first it will removing existing HKCR registry entries.
; 1.04 (20001025) - update to kixtart 3.63
; 2.00 (20010320) - use %tmp% variable as temporary path.
; - use @curdir as location of "%temp%\ixp00?.tmp" directory.
; - use flexible "kix36?.ok" file.
; 2.01 (20010401) - kixtart 2001 beta1 compliancy
; - kix32.exe (= console-less version)
; - kix32c.exe (= console version)
; - introduction of "$debug_file"
; - introduction of "$update_ok". all kixtart files
; must be available at "$destination_directory".
; - check files
; - kix400.kix <= kix32.exe
; - kix400c.kix <= kix32c.exe (with "kix.console" file)
; - introduction of "$kix_console_mode".
; - additional information written to eventlog.
; 2.02 (20010605) - split script for with/without debugging.
; - activate $debug_mode when variable %kix-debug% is declared.
; - shows also @curdir value.
; - fix: for too late flushing write-buffers on windows95
; 2.03 (20011120) - add "windows XP"
; 2.04 (20011120) - additional information written to check-file about update/registry mode.
; 3.00 (20020110) - remove also .k2k & .udf registry keys by an update.
; 3.01 (20020410) - activate $show_mode when variable %kix-show% is declared.
; - remove other check-files (del $systemdrive+"kix*.ok").
; 3.02 (20020530) - convert "kixedit.reg" to internal code.
; - move "kedit.ico" to "%systemroot% directory. mostly $systemdrive+"windows" or
; $systemdrive+"winnt" directory.
; - change $systemdrive+"kix???.ok" location to "%systemroot\kix???.ok". prevent
; permission problems.
; for compatibility reasons we create both control files.
; 3.03 (20020530) - restyle check-file.
; - change "kixedit.reg" to "kedit.ico" as check.
; 3.04 (20020725) - Change to used Environment variables and not just C: or C:\Winnt.
;
; external variables kix-debug
; kix-show
;
$prgrm_version="3.03"
;
$tmp_directory=ExpandEnvironmentVars("%tmp%")
IF (Substr($tmp_directory,len($tmp_directory),1) <> "\")
$tmp_directory=$tmp_directory+"\"
ENDIF
;
$debug_mode="no"
IF (len(ExpandEnvironmentVars(CHR(37)+"kix-debug"+CHR(37))) <> 0)
$debug_mode="yes"
ENDIF
$show_mode="no"
IF (len(ExpandEnvironmentVars(CHR(37)+"kix-show"+CHR(37))) <> 0)
$show_mode="yes"
ENDIF

; ---------------------------------------------------------------------------
; - site defined settings -
; ---------------------------------------------------------------------------

$debug_file=$tmp_directory+"kixtart.txt"

; ---------------------------------------------------------------------------
; - -
; ---------------------------------------------------------------------------

IF (@inwin = 1)
$NT_mode="yes"
ELSE
$NT_mode="no"
ENDIF
;
$os=""
$os_dos=@dos
SELECT
CASE ($NT_mode = "yes") AND ($os_dos = "5.1") ; - Windows XP -
$os="XP"
CASE ($NT_mode = "yes") AND ($os_dos = "5.0") ; - Windows 2000 -
$os="W2K"
CASE ($NT_mode = "yes") ; - Windows NT -
$os="NT4"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.90") ; - Windows ME -
$os="ME"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") ; - Windows 98 -
$os="W98"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") ; - Windows 95 -
$os="W95"
CASE 1
$os="???" ; - undetermined -
ENDSELECT
$time_start=@time
;
IF ($debug_mode = "yes")
break on
del $debug_file
IF (RedirectOutput($debug_file,1) = 0)
ENDIF
$log_info="Kixtart-UPDATE "+$prgrm_version+" script started."
IF logevent(0, 1, $log_info, "", "Kixtart UPDATE @kix")
ENDIF
ELSE
break off
del $debug_file
IF (RedirectOutput("nul",1) = 0)
ENDIF
ENDIF

IF ($debug_mode = "yes")
? "Kixtart "+@kix+" - "+$os+" debug mode (vs "+$prgrm_version+")"+" "+$time_start
?
ENDIF

; --------------------------------------------------------------------------
; - install kixtart at local workstation -
; - -
; - 1. calculates source/destination directory -
; - 2. check for update -
; - - GetFileSize -
; - - GetFileTime -
; - - GetFileVersion -
; - 3. update any kixtart file, when installed version isn't the same. -
; - first it removes unwanted fileattributes -
; - (hidden, readonly, system) -
; - 4a. create information file, which can be checked by batch -
; - procedure. it eliminates a unwanted download + installation. -
; - 4b. log update information to eventvwr log. -
; - -
; - call by installation procedure -
; - fe. "if not exist $systemdrive+kix362.ok %0\..\kix362update.exe /q" -
; - "if not exist $systemdrive+kix363.ok %0\..\kix363update.exe /q" -
; - "if not exist $systemdrive+"kix400.ok %0\..\kix400update.exe /q" -
; - "if not exist $systemdrive+"kix400w.ok %0\..\kix400update.exe /q" -
; --------------------------------------------------------------------------

$source_directory=@curdir
IF (Substr($source_directory,len($source_directory),1) <> "\")
$source_directory=$source_directory+"\"
ENDIF
IF ($NT_mode = "yes")
$destination_directory=ReadValue("HKEY_LOCAL_MACHINE\software\microsoft\windows NT\currentversion", "SystemRoot")
ELSE
$destination_directory=ReadValue("HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion", "SystemRoot")
ENDIF
IF (len($destination_directory) = 0)
$destination_directory=@lanroot
ENDIF
IF (Substr($destination_directory,len($destination_directory),1) <> "\")
$destination_directory=$destination_directory+"\"
ENDIF
;
$kix_console_mode="no" ; - kix32.exe -
;
$max_kix_files=4
DIM $kix_files[$max_kix_files+1]
$kix_files[0]="kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok" ; - check file -
$kix_files[1]="kix32.exe"
$kix_files[2]="kx16.dll"
$kix_files[3]="kx32.dll"
$kix_files[4]="kx95.dll"
;
$first_installation="yes"
IF (Exist($systemdrive+$kix_files[0]) = 1)
$first_installation="no"
ELSE
del $systemdrive+"kix*.ok" ; - other installed kixtart versions -
ENDIF
IF (Exist($destination_directory+$kix_files[0]) = 1)
$first_installation="no"
ELSE
del $destination_directory+"kix*.ok" ; - other installed kixtart versions -
ENDIF
;
$update="no"
$update_info=""
$i=1
WHILE ($i <= $max_kix_files)
$source_file=$source_directory+$kix_files[$i]
$destination_file=$destination_directory+$kix_files[$i]
IF (Exist($destination_file) = 1)
IF (setfileattr($destination_file, 128) <> 0)
ENDIF
IF ($debug_mode = "yes")
del $destination_file ; - activates an automatic update for debugging script -
ENDIF
ENDIF
$update="yes"
IF (Exist($source_file) = 1)
$update="no"
IF (GetFileSize($source_file) <> GetFileSize($destination_file))
$update="yes"
ENDIF
IF (GetFileTime($source_file) <> GetFileTime($destination_file))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"filedescription") <> GetFileVersion($destination_file,"filedescription"))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"fileversion") <> GetFileVersion($destination_file,"fileversion"))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"internalname") <> GetFileVersion($destination_file,"internalname"))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"language") <> GetFileVersion($destination_file,"language"))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"originalfilename") <> GetFileVersion($destination_file,"originalfilename"))
$update="yes"
ENDIF
IF (GetFileVersion($source_file,"productname") <> GetFileVersion($destination_file,"productname"))
$update="yes"
ENDIF
ENDIF
;
IF ($update = "yes") OR ($debug_mode = "yes")
copy $source_file $destination_file /H
$update_info=$update_info+" +"+LCASE($kix_files[$i])
ELSE
$update_info=$update_info+" ="+LCASE($kix_files[$i])
ENDIF
IF (@error <> 0)
? "Warning INSTALL "+@error+": "+@serror
ENDIF
IF ($debug_mode = "yes")
? "Informative INSTALL: copy "+LCASE($source_file)+" "+LCASE($destination_file)
?
? " size.old = "+GetFileSize($source_file)
? " size.new = "+GetFileSize($destination_file)
? " time.old = "+GetFileTime($source_file)
? " time.new = "+GetFileTime($destination_file)
?
? " company name "+GetFileVersion($source_file,"company name")
? " filedescription "+GetFileVersion($source_file,"filedescription")
? " fileversion "+GetFileVersion($source_file,"fileversion")
? " internalname "+GetFileVersion($source_file,"internalname")
? " language "+GetFileVersion($source_file,"language")
? " legalcopyright "+GetFileVersion($source_file,"legalcopyright")
? " legaltrademarks "+GetFileVersion($source_file,"legaltrademarks")
? " originalfilename "+GetFileVersion($source_file,"originalfilename")
? " privatebuild "+GetFileVersion($source_file,"privatebuild")
? " productname "+GetFileVersion($source_file,"productname")
? " productversion "+GetFileVersion($source_file,"productversion")
? " specialbuild "+GetFileVersion($source_file,"specialbuild")
?
ENDIF
$i=$i+1
LOOP
;
IF ($debug_mode = "yes")
del $systemdrive+$kix_files[0] ; - activates an automatic update for debugging script -
ENDIF
;
$update_ok="yes" ; - all kixtart files must be available at $destination_directory -
$i=1
WHILE ($i <= $max_kix_files)
$destination_file=$destination_directory+$kix_files[$i]
IF (Exist($destination_file) <> 1)
$update_ok="no"
$update_info=$update_info+" unknown_file."+LCASE($kix_files[$i])
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", LCASE($kix_files[$i]), @date+" "+@time+" -> unknown file")
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", LCASE($kix_files[$i]), @date+" "+@time+" -> unknown file")
ENDIF
ELSE
$build_info=GetFileVersion($destination_file,"specialbuild")
IF (len($build_info) <> 0)
$build_info=" ("+LCASE($build_info)+")"
ELSE
$build_info=""
ENDIF
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", LCASE($kix_files[$i]), @date+" "+@time+" -> "+GetFileTime($destination_file)+" "+GetFileSize($destination_file)+$build_info)
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", LCASE($kix_files[$i]), @date+" "+@time+" -> "+GetFileTime($destination_file)+" "+GetFileSize($destination_file)+$build_info)
ENDIF
ENDIF
$i=$i+1
LOOP
IF ($update_ok = "yes")
$update_info="("+LTRIM(RTRIM(LCASE($update_info)))+") to "+'"'+LTRIM(RTRIM(LCASE($destination_directory)))+'"'
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", "KiXtart", "installation completed at "+@date+" "+@time+" "+$update_info)
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", "KiXtart", "installation completed at "+@date+" "+@time+" "+$update_info)
ENDIF
ELSE
$update_info="("+LTRIM(RTRIM(LCASE($update_info)))+") to "+'"'+LTRIM(RTRIM(LCASE($destination_directory)))+'"'
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", "KiXtart", "installation incompleted at "+@date+" "+@time+" "+$update_info)
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", "KiXtart", "installation incompleted at "+@date+" "+@time+" "+$update_info)
ENDIF
ENDIF
IF ($update_ok <> "yes")
IF (Exist($systemdrive+$kix_files[0]) = 1)
IF ($debug_mode <> "yes")
del $systemdrive+$kix_files[0] ; - kixtart version is incompleted -
ENDIF
ENDIF
ENDIF

; --------------------------------------------------------------------------
; - HKCR registry update -
; --------------------------------------------------------------------------

$ikey="HKEY_CLASSES_ROOT\.kix"
IF (ExistKey($ikey) = 0)
IF (DelTree($ikey) <> 0)
? "Warning INSTALL.KIX "+@error+": "+@serror
ENDIF
ENDIF
$ikey="HKEY_CLASSES_ROOT\.k2k"
IF (ExistKey($ikey) = 0)
IF (DelTree($ikey) <> 0)
? "Warning INSTALL.KIX "+@error+": "+@serror
ENDIF
ENDIF
$ikey="HKEY_CLASSES_ROOT\.scr"
IF (ExistKey($ikey) = 0)
IF (DelTree($ikey) <> 0)
? "Warning INSTALL.KIX "+@error+": "+@serror
ENDIF
ENDIF
$ikey="HKEY_CLASSES_ROOT\.udf"
IF (ExistKey($ikey) = 0)
IF (DelTree($ikey) <> 0)
? "Warning INSTALL.KIX "+@error+": "+@serror
ENDIF
ENDIF
$ikey="HKEY_CLASSES_ROOT\kix32 document"
IF (ExistKey($ikey) = 0)
IF (DelTree($ikey) <> 0)
? "Warning INSTALL.KIX "+@error+": "+@serror
ENDIF
ENDIF
;
IF (Exist($source_directory+"kedit.ico") = 1)
copy $source_directory+"kedit.ico" $destination_directory+"kedit.ico" /H
;
? "Informative INSTALL.KIX: creation of KIX file associations."
;
; - create Kixtart 3.6x/4.x registry entries
; - .kix, .k2k, .scr, .udf
; -
; - requirements: kix32.exe is available
; - options: %systemroot%\kedit.ico
; - editor of your choose f.e. notepad.exe
;
$nul=AddKey("HKEY_CLASSES_ROOT\.kix")
$nul=WriteValue("HKEY_CLASSES_ROOT\.kix","","kix32 document","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\.k2k")
$nul=WriteValue("HKEY_CLASSES_ROOT\.k2k","","kix32 document","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\.scr")
$nul=WriteValue("HKEY_CLASSES_ROOT\.scr","","kix32 document","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\.udf")
$nul=WriteValue("HKEY_CLASSES_ROOT\.udf","","kix32 document","REG_SZ")

$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document","","KiXtart","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\DefaultIcon")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\DefaultIcon","",LCASE($destination_directory+"kedit.ico"),"REG_SZ")

$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell","","Edit","REG_SZ")
; - open: Kix32 Run -
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\open")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\open","","Kix32 &run","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\open\command")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\open\command","","kix32.exe %1","REG_SZ")
; - debug: Kix32 run with Debug -
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\debug")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\debug","","Kix32 run with &debug","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\debug\command")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\debug\command","","kix32.exe %1 /d","REG_SZ")
; - edit: Edit -
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\edit")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\edit","","&Edit","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\edit\command")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\edit\command","","notepad.exe %1","REG_SZ")
; - print: Print -
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\print")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\print","","&Print","REG_SZ")
$nul=AddKey("HKEY_CLASSES_ROOT\kix32 document\Shell\print\command")
$nul=WriteValue("HKEY_CLASSES_ROOT\kix32 document\Shell\print\command","","notepad.exe /p %1","REG_SZ")
ENDIF
;
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", "KiXtart release", $os+" -> kix "+@kix)
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", "KiXtart release", $os+" -> kix "+@kix)
ENDIF
IF (Exist($source_directory+"kedit.ico") = 1)
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", "KiXtart mode", "registry")
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", "KiXtart mode", "registry")
ENDIF
ELSE
IF WriteProfileString($systemdrive+$kix_files[0], "KiXtart", "KiXtart mode", "update")
ENDIF
IF WriteProfileString($destination_directory+$kix_files[0], "KiXtart", "KiXtart mode", "update")
ENDIF
ENDIF

; --------------------------------------------------------------------------
; - end -
; --------------------------------------------------------------------------

:end_script
$time_stop=@time
IF ($update = "yes")
$log_info="Kixtart-UPDATE "+$prgrm_version+" script completed successfully"
$log_info=$log_info+" ("+$time_start+" - "+$time_stop+") "+LTRIM(RTRIM($update_info))
IF ($kix_console_mode = "yes")
$log_info=$log_info+" (CONSOLE-LESS)"
ENDIF
IF ($debug_mode = "yes")
?
? " logevent = "+$log_info
?
ENDIF
IF ($update_ok = "yes")
IF logevent(0, 1, $log_info, "", "Kixtart UPDATE @kix"+"c")
ENDIF
ELSE
IF logevent(0, 1, $log_info, "", "Kixtart UPDATE @kix"+"e")
ENDIF
ENDIF
ENDIF
IF ($update_ok = "yes")
$update_ok=""
ELSE
$update_ok="in"
ENDIF
IF ($kix_console_mode = "yes")
? "Kixtart "+@kix+" (console-less) update "+$update_ok+"completed. ('"+$source_directory+"' -> '"+$destination_directory+"')"
ELSE
? "Kixtart "+@kix+" update "+$update_ok+"completed. ('"+$source_directory+"' -> '"+$destination_directory+"')"
ENDIF
IF (RedirectOutput("CON") = 0)
ENDIF
IF ($kix_console_mode = "yes")
? "Kixtart "+@kix+" (console-less) update "+$update_ok+"completed. ('"+$source_directory+"' -> '"+$destination_directory+"')"
ELSE
? "Kixtart "+@kix+" update "+$update_ok+"completed. ('"+$source_directory+"' -> '"+$destination_directory+"')"
ENDIF
?
IF ($debug_mode = "yes")
? "Informative INSTALL: create debug list '"+$debug_file+"'"
ELSE
? "Informative INSTALL: no creation of debug list '"+$debug_file+"'"
ENDIF
:end
IF ($show_mode = "yes")
$title="KiXtart "+@kix
$message=""
IF ($first_installation = "yes")
IF (Exist($systemdrive+"kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok") = 1) OR (Exist($destination_directory+"kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok") = 1)
$message="Installation of KiXtart "+@kix+" completed"
ELSE
$message="Installation of KiXtart "+@kix+" incompleted"
ENDIF
ELSE
IF (Exist($systemdrive+"kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok") = 0) OR (Exist($destination_directory+"kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok") = 0)
$message="Installation of KiXtart "+@kix+" incompleted"
ENDIF
ENDIF
? $message
IF (len($message) <> 0)
IF (Exist($source_directory+"kedit.ico") = 1)
$message=$message+" (registry mode)."
ELSE
$message=$message+" (update mode)."
ENDIF
IF (MessageBox($message, $title, 340, 15) <> 0)
ENDIF
ENDIF
ENDIF
break on
flushkb

start2.kix is debug file..
code:
                                            CLS
COLOR C+/N
AT (1,1) " "
$tmp_directory=ExpandEnvironmentVars("%tmp%")
IF (Substr($tmp_directory,len($tmp_directory),1) <> "\")
$tmp_directory=$tmp_directory+"\"
ENDIF
IF RedirectOutput($tmp_directory+"kixdebug.txt")
ENDIF
;
? "-"+LCASE(@day)+" "+@date+" "+@time+"- kixtart "+@kix+"/3.04e script starting."
? "-"
? "-curdir: "+LCASE(@curdir)
? "-scriptdir: "+LCASE(@scriptdir)
IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0)
? "-scriptname: "+LCASE(@scriptname)
ENDIF
? "-startdir: "+LCASE(@startdir)
? "-"
? "-userid: "+LCASE(@userid)+"/"+LCASE(@wuserid)
? "-user priv: "+LCASE(@priv)
IF (instr("-4.xx-","-"+substr(@kix,1,2)+"xx-") <> 0)
? "-version: inwin="+@inwin+"/dos="+@dos"/productsuite="+@productsuite+"/producttype="+@producttype"/csd="+LTRIM(RTRIM(@csd))
ELSE
? "-version: inwin="+@inwin+"/dos="+@dos
ENDIF
? "-"
?"- start-"+@time+"- @error @serror "?

?"- 1-"+@time+"- @error @serror "? CLS
?"- 2-"+@time+"- @error @serror "? BREAK ON
?"- 3-"+@time+"- @error @serror "? IF setconsole("hide")
?"- 4-"+@time+"- @error @serror "? ENDIF
?"- 5-"+@time+"- @error @serror "? ;
?"- 6-"+@time+"- @error @serror "? ; NT/95 install kixtart - Kixtart 3.62, 3.63, 4.00, 4.01, 4.02, 4.10
?"- 7-"+@time+"- @error @serror "? ;
?"- 8-"+@time+"- @error @serror "? ; (c) scripting@wanadoo.nl - 2000, 2001, 2002
?"- 9-"+@time+"- @error @serror "? ;
?"- 10-"+@time+"- @error @serror "? ; vs 3.03 - program
?"- 11-"+@time+"- @error @serror "? ;
?"- 12-"+@time+"- @error @serror "? ; 1.00 (20000715) original version. created for IExpress package.
?"- 13-"+@time+"- @error @serror "? ; 1.01 (20000715) - additional information written to check-file.
?"- 14-"+@time+"- @error @serror "? ; 1.02 (20000715) - additional information about starting script.
?"- 15-"+@time+"- @error @serror "? ; system tries to find $systemdrive+"temp\kixtart.dbg" file, which will
?"- 16-"+@time+"- @error @serror "? ; create a info file $systemdrive+"temp\kixtart.txt".
?"- 17-"+@time+"- @error @serror "? ; automatic remove of $systemdrive+"temp\kixtart.dbg" + $systemdrive+"temp\kixtart.txt" by next run.
?"- 18-"+@time+"- @error @serror "? ; - change "source_directory" to $systemdrive+"temp\ixp000.tmp\",
?"- 19-"+@time+"- @error @serror "? ; because "@curdir" is "@homeshr" directory.
?"- 20-"+@time+"- @error @serror "? ; - CHANGE iexpress package changed. calling command
?"- 21-"+@time+"- @error @serror "? ; "kix32.exe install.kix"
?"- 22-"+@time+"- @error @serror "? ; to
?"- 23-"+@time+"- @error @serror "? ; $systemdrive+"temp\ixp000.tmp\kix32.exe $systemdrive+temp\ixp000.tmp\install.kix".
?"- 24-"+@time+"- @error @serror "? ; sometime actual drive isn't correct.
?"- 25-"+@time+"- @error @serror "? ; 1.03 (20000730) - add HKCR registry entries to 'edit', 'run', 'run debug' + 'print' kixtart scripts.
?"- 26-"+@time+"- @error @serror "? ; first it will removing existing HKCR registry entries.
?"- 27-"+@time+"- @error @serror "? ; 1.04 (20001025) - update to kixtart 3.63
?"- 28-"+@time+"- @error @serror "? ; 2.00 (20010320) - use %tmp% variable as temporary path.
?"- 29-"+@time+"- @error @serror "? ; - use @curdir as location of "%temp%\ixp00?.tmp" directory.
?"- 30-"+@time+"- @error @serror "? ; - use flexible "kix36?.ok" file.
?"- 31-"+@time+"- @error @serror "? ; 2.01 (20010401) - kixtart 2001 beta1 compliancy
?"- 32-"+@time+"- @error @serror "? ; - kix32.exe (= console-less version)
?"- 33-"+@time+"- @error @serror "? ; - kix32c.exe (= console version)
?"- 34-"+@time+"- @error @serror "? ; - introduction of "$debug_file"
?"- 35-"+@time+"- @error @serror "? ; - introduction of "$update_ok". all kixtart files
?"- 36-"+@time+"- @error @serror "? ; must be available at "$destination_directory".
?"- 37-"+@time+"- @error @serror "? ; - check files
?"- 38-"+@time+"- @error @serror "? ; - kix400.kix <= kix32.exe
?"- 39-"+@time+"- @error @serror "? ; - kix400c.kix <= kix32c.exe (with "kix.console" file)
?"- 40-"+@time+"- @error @serror "? ; - introduction of "$kix_console_mode".
?"- 41-"+@time+"- @error @serror "? ; - additional information written to eventlog.
?"- 42-"+@time+"- @error @serror "? ; 2.02 (20010605) - split script for with/without debugging.
?"- 43-"+@time+"- @error @serror "? ; - activate $debug_mode when variable %kix-debug% is declared.
?"- 44-"+@time+"- @error @serror "? ; - shows also @curdir value.
?"- 45-"+@time+"- @error @serror "? ; - fix: for too late flushing write-buffers on windows95
?"- 46-"+@time+"- @error @serror "? ; 2.03 (20011120) - add "windows XP"
?"- 47-"+@time+"- @error @serror "? ; 2.04 (20011120) - additional information written to check-file about update/registry mode.
?"- 48-"+@time+"- @error @serror "? ; 3.00 (20020110) - remove also .k2k & .udf registry keys by an update.
?"- 49-"+@time+"- @error @serror "? ; 3.01 (20020410) - activate $show_mode when variable %kix-show% is declared.
?"- 50-"+@time+"- @error @serror "? ; - remove other check-files (del $systemdrive+"kix*.ok").
?"- 51-"+@time+"- @error @serror "? ; 3.02 (20020530) - convert "kixedit.reg" to internal code.
?"- 52-"+@time+"- @error @serror "? ; - move "kedit.ico" to "%systemroot% directory. mostly $systemdrive+"windows" or
?"- 53-"+@time+"- @error @serror "? ; $systemdrive+"winnt" directory.
?"- 54-"+@time+"- @error @serror "? ; - change $systemdrive+"kix???.ok" location to "%systemroot\kix???.ok". prevent
?"- 55-"+@time+"- @error @serror "? ; permission problems.
?"- 56-"+@time+"- @error @serror "? ; for compatibility reasons we create both control files.
?"- 57-"+@time+"- @error @serror "? ; 3.03 (20020530) - restyle check-file.
?"- 58-"+@time+"- @error @serror "? ; - change "kixedit.reg" to "kedit.ico" as check.
?"- 59-"+@time+"- @error @serror "? ;
?"- 60-"+@time+"- @error @serror "? ; external variables kix-debug
?"- 61-"+@time+"- @error @serror "? ; kix-show
?"- 62-"+@time+"- @error @serror "? ;
?"- 63-"+@time+"- @error @serror "? $prgrm_version="3.04"
?"- 64-"+@time+"- @error @serror "? ;
?"- 65-"+@time+"- @error @serror "? $tmp_directory=ExpandEnvironmentVars("%tmp%")
?"- 66-"+@time+"- @error @serror "? IF (Substr($tmp_directory,len($tmp_directory),1) <> "\")
?"- 67-"+@time+"- @error @serror "? $tmp_directory=$tmp_directory+"\"
?"- 68-"+@time+"- @error @serror "? ENDIF
?"- 69-"+@time+"- @error @serror "? ;
?"- 70-"+@time+"- @error @serror "? $debug_mode="no"
?"- 71-"+@time+"- @error @serror "? IF (len(ExpandEnvironmentVars(CHR(37)+"kix-debug"+CHR(37))) <> 0)
?"- 72-"+@time+"- @error @serror "? $debug_mode="yes"
?"- 73-"+@time+"- @error @serror "? ENDIF
?"- 74-"+@time+"- @error @serror "? $show_mode="no"
?"- 75-"+@time+"- @error @serror "? IF (len(ExpandEnvironmentVars(CHR(37)+"kix-show"+CHR(37))) <> 0)
?"- 76-"+@time+"- @error @serror "? $show_mode="yes"
?"- 77-"+@time+"- @error @serror "? ENDIF
?"- 78-"+@time+"- @error @serror "?
?"- 79-"+@time+"- @error @serror "? ; ---------------------------------------------------------------------------
?"- 80-"+@time+"- @error @serror "? ; - site defined settings -
?"- 81-"+@time+"- @error @serror "? ; ---------------------------------------------------------------------------
?"- 82-"+@time+"- @error @serror "?
?"- 83-"+@time+"- @error @serror "? $debug_file=$tmp_directory+"kixtart.txt"
?"- 84-"+@time+"- @error @serror "?
?"- 85-"+@time+"- @error @serror "? ; ---------------------------------------------------------------------------
?"- 86-"+@time+"- @error @serror "? ; - -
?"- 87-"+@time+"- @error @serror "? ; ---------------------------------------------------------------------------
?"- 88-"+@time+"- @error @serror "?
?"- 89-"+@time+"- @error @serror "? IF (@inwin = 1)
?"- 90-"+@time+"- @error @serror "? $nt_mode="yes"
?"- 91-"+@time+"- @error @serror "? ELSE
?"- 92-"+@time+"- @error @serror "? $nt_mode="no"
?"- 93-"+@time+"- @error @serror "? ENDIF
?"- 94-"+@time+"- @error @serror "? ;
?"- 95-"+@time+"- @error @serror "? $os=""
?"- 96-"+@time+"- @error @serror "? $os_dos=@dos
?"- 97-"+@time+"- @error @serror "? SELECT
?"- 98-"+@time+"- @error @serror "? CASE
($nt_mode = "yes") AND ($os_dos = "5.1") ; - Windows XP -
?"- 99-"+@time+"- @error @serror "? $os="XP"
?"- 100-"+@time+"- @error @serror "? CASE
($nt_mode = "yes") AND ($os_dos = "5.0") ; - Windows 2000 -
?"- 101-"+@time+"- @error @serror "? $os="W2K"
?"- 102-"+@time+"- @error @serror "? CASE
($nt_mode = "yes") ; - Windows NT -
?"- 103-"+@time+"- @error @serror "? $os="NT4"
?"- 104-"+@time+"- @error @serror "? CASE
($nt_mode <> "yes") AND ($os_dos = "4.90") ; - Windows ME -
?"- 105-"+@time+"- @error @serror "? $os="ME"
?"- 106-"+@time+"- @error @serror "? CASE
($nt_mode <> "yes") AND ($os_dos = "4.10") ; - Windows 98 -
?"- 107-"+@time+"- @error @serror "? $os="W98"
?"- 108-"+@time+"- @error @serror "? CASE
($nt_mode <> "yes") AND ($os_dos = "4.0") ; - Windows 95 -
?"- 109-"+@time+"- @error @serror "? $os="W95"
?"- 110-"+@time+"- @error @serror "? CASE
1
?"- 111-"+@time+"- @error @serror "? $os="???" ; - undetermined -
?"- 112-"+@time+"- @error @serror "? ENDSELECT
?"- 113-"+@time+"- @error @serror "? $time_start=@time
?"- 114-"+@time+"- @error @serror "? ;
?"- 115-"+@time+"- @error @serror "? IF ($debug_mode = "yes")
?"- 116-"+@time+"- @error @serror "? BREAK ON
?"- 117-"+@time+"- @error @serror "? DEL $debug_file
?"- 118-"+@time+"- @error @serror "? ; IF (RedirectOutput($debug_file,1) = 0)
?"- 119-"+@time+"- @error @serror "? ; ENDIF
?"- 120-"+@time+"- @error @serror "? $log_info="Kixtart-UPDATE "+$prgrm_version+" script started."
?"- 121-"+@time+"- @error @serror "? IF logevent(0, 1, $log_info, "", "Kixtart UPDATE @kix")
?"- 122-"+@time+"- @error @serror "? ENDIF
?"- 123-"+@time+"- @error @serror "? ELSE
?"- 124-"+@time+"- @error @serror "? BREAK OFF
?"- 125-"+@time+"- @error @serror "? DEL $debug_file
?"- 126-"+@time+"- @error @serror "? ; IF (RedirectOutput("nul",1) = 0)
?"- 127-"+@time+"- @error @serror "? ; ENDIF
?"- 128-"+@time+"- @error @serror "? ENDIF
?"- 129-"+@time+"- @error @serror "?
?"- 130-"+@time+"- @error @serror "? IF ($debug_mode = "yes")
?"- 131-"+@time+"- @error @serror "? ? "Kixtart "+@kix+" - "+$os+" debug mode (vs "+$prgrm_version+")"+" "+$time_start
?"- 132-"+@time+"- @error @serror "? ?
?"- 133-"+@time+"- @error @serror "? ENDIF
?"- 134-"+@time+"- @error @serror "?
?"- 135-"+@time+"- @error @serror "? ; --------------------------------------------------------------------------
?"- 136-"+@time+"- @error @serror "? ; - install kixtart at local workstation -
?"- 137-"+@time+"- @error @serror "? ; - -
?"- 138-"+@time+"- @error @serror "? ; - 1. calculates source/destination directory -
?"- 139-"+@time+"- @error @serror "? ; - 2. check for update -
?"- 140-"+@time+"- @error @serror "? ; - - GetFileSize -
?"- 141-"+@time+"- @error @serror "? ; - - GetFileTime -
?"- 142-"+@time+"- @error @serror "? ; - - GetFileVersion -
?"- 143-"+@time+"- @error @serror "? ; - 3. update any kixtart file, when installed version isn't the same. -
?"- 144-"+@time+"- @error @serror "? ; - first it removes unwanted fileattributes -
?"- 145-"+@time+"- @error @serror "? ; - (hidden, readonly, system) -
?"- 146-"+@time+"- @error @serror "? ; - 4a. create information file, which can be checked by batch -
?"- 147-"+@time+"- @error @serror "? ; - procedure. it eliminates a unwanted download + installation. -
?"- 148-"+@time+"- @error @serror "? ; - 4b. log update information to eventvwr log. -
?"- 149-"+@time+"- @error @serror "? ; - -
?"- 150-"+@time+"- @error @serror "? ; - call by installation procedure -
?"- 151-"+@time+"- @error @serror "? ; - fe. "if not exist $systemdrive+kix362.ok %0\..\kix362update.exe /q" -
?"- 152-"+@time+"- @error @serror "? ; - "if not exist $systemdrive+kix363.ok %0\..\kix363update.exe /q" -
?"- 153-"+@time+"- @error @serror "? ; - "if not exist $systemdrive+kix400.ok %0\..\kix400update.exe /q" -
?"- 154-"+@time+"- @error @serror "? ; - "if not exist $systemdrive+kix400w.ok %0\..\kix400update.exe /q" -
?"- 155-"+@time+"- @error @serror "? ; --------------------------------------------------------------------------
?"- 156-"+@time+"- @error @serror "?
?"- 157-"+@time+"- @error @serror "? $source_directory=@curdir
?"- 158-"+@time+"- @error @serror "? IF (Substr($source_directory,len($source_directory),1) <> "\")
?"- 159-"+@time+"- @error @serror "? $source_directory=$source_directory+"\"
?"- 160-"+@time+"- @error @serror "? ENDIF
?"- 161-"+@time+"- @error @serror "? IF ($nt_mode = "yes")
?"- 162-"+@time+"- @error @serror "? $destination_directory=ReadValue("HKEY_LOCAL_MACHINE\software\microsoft\windows NT\currentversion", "SystemRoot")
?"- 163-"+@time+"- @error @serror "? ELSE
?"- 164-"+@time+"- @error @serror "? $destination_directory=ReadValue("HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion", "SystemRoot")
?"- 165-"+@time+"- @error @serror "? ENDIF
?"- 166-"+@time+"- @error @serror "? IF (len($destination_directory) = 0)
?"- 167-"+@time+"- @error @serror "? $destination_directory=@lanroot
?"- 168-"+@time+"- @error @serror "? ENDIF
?"- 169-"+@time+"- @error @serror "? IF (Substr($destination_directory,len($destination_directory),1) <> "\")
?"- 170-"+@time+"- @error @serror "? $destination_directory=$destination_directory+"\"
?"- 171-"+@time+"- @error @serror "? ENDIF
?"- 172-"+@time+"- @error @serror "? ;
?"- 173-"+@time+"- @error @serror "? $kix_console_mode="no" ; - kix32.exe -
?"- 174-"+@time+"- @error @serror "? ;
?"- 175-"+@time+"- @error @serror "? $max_kix_files=4
?"- 176-"+@time+"- @error @serror "? DIM $kix_files[$max_kix_files+1]
?"- 177-"+@time+"- @error @serror "? $kix_files[0]="kix"+Substr(@kix,1,1)+Substr(@kix,3,2)+".ok" ; - check file -
?"- 178-"+@time+"- @error @serror "? $kix_files[1]="kix32.exe"
?"- 179-"+@time+"- @error @serror "? $kix_files[2]="kx16.dll"
?"- 180-"+@time+"- @error @serror "? $kix_files[3]="kx32.dll"
?"- 181-"+@time+"- @error @serror "? $kix_files[4]="kx95.dll"
?"- 182-"+@time+"- @error @serror "? ;
?"- 183-"+@time+"- @error @serror "? $first_installation="yes"
?"- 184-"+@time+"- @error @serror "? IF (Exist($systemdrive+$kix_files[0]) = 1)
?"- 185-"+@time+"- @error @serror "? $first_installation="no"
?"- 186-"+@time+"- @error @serror "? ELSE
?"- 187-"+@time+"- @error @serror "? DEL $systemdrive+"kix*.ok" ; - other installed kixtart versions -
?"- 188-"+@time+"- @error @serror "? ENDIF
?"- 189-"+@time+"- @error @serror "? IF (Exist($destination_directory+$kix_files[0]) = 1)
?"- 190-"+@time+"- @error @serror "? $first_installation="no"
?"- 191-"+@time+"- @error @serror "? ELSE
?"- 192-"+@time+"- @error @serror "? DEL $destination_directory+"kix*.ok" ; - other installed kixtart versions -
?"- 193-"+@time+"- @error @serror "? ENDIF
?"- 194-"+@time+"- @error @serror "? ;
?"- 195-"+@time+"- @error @serror "? $update="no"
?"- 196-"+@time+"- @error @serror "? $update_info=""
?"- 197-"+@time+"- @error @serror "? $i=1
?"- 198-"+@time+"- @error @serror "? WHILE ($i <= $max_kix_files)
?"- 199-"+@time+"- @error @serror "? $source_file=$source_directory+$kix_files[$i]
?"- 200-"+@time+"- @error @serror "? $destination_file=$destination_directory+$kix_files[$i]
?"- 201-"+@time+"- @error @serror "? IF (Exist($destination_file) = 1)
?"- 202-"+@time+"- @error @serror "? IF (setfileattr($destination_file, 128) <> 0)
?"- 203-"+@time+"- @error @serror "? ENDIF
?"- 204-"+@time+"- @error @serror "? IF ($debug_mode = "yes")
?"- 205-"+@time+"- @error @serror "? DEL $destination_file ; - activates an automatic update for debugging script -
?"- 206-"+@time+"- @error @serror "? ENDIF
?"- 207-"+@time+"- @error @serror "? ENDIF
?"- 208-"+@time+"- @error @serror "? $update="yes"
?"- 209-"+@time+"- @error @serror "? IF (Exist($source_file) = 1)
?"- 210-"+@time+"- @error @serror "? $update="no"
?"- 211-"+@time+"- @error @serror "? IF (GetFileSize($source_file) <> GetFileSize($destination_file))
?"- 212-"+@time+"- @error @serror "? $update="yes"
?"- 213-"+@time+"- @error @serror "? ENDIF
?"- 214-"+@time+"- @error @serror "? IF (GetFileTime($source_file) <> GetFileTime($destination_file))
?"- 215-"+@time+"- @error @serror "? $update="yes"
?"- 216-"+@time+"- @error @serror "? ENDIF
?"- 217-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"filedescription") <> GetFileVersion($destination_file,"filedescription"))
?"- 218-"+@time+"- @error @serror "? $update="yes"
?"- 219-"+@time+"- @error @serror "? ENDIF
?"- 220-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"fileversion") <> GetFileVersion($destination_file,"fileversion"))
?"- 221-"+@time+"- @error @serror "? $update="yes"
?"- 222-"+@time+"- @error @serror "? ENDIF
?"- 223-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"internalname") <> GetFileVersion($destination_file,"internalname"))
?"- 224-"+@time+"- @error @serror "? $update="yes"
?"- 225-"+@time+"- @error @serror "? ENDIF
?"- 226-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"language") <> GetFileVersion($destination_file,"language"))
?"- 227-"+@time+"- @error @serror "? $update="yes"
?"- 228-"+@time+"- @error @serror "? ENDIF
?"- 229-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"originalfilename") <> GetFileVersion($destination_file,"originalfilename"))
?"- 230-"+@time+"- @error @serror "? $update="yes"
?"- 231-"+@time+"- @error @serror "? ENDIF
?"- 232-"+@time+"- @error @serror "? IF (GetFileVersion($source_file,"productname") <> GetFileVersion($destination_file,"productname"))
?"- 233-"+@time+"- @error @serror "? $update="yes"
?"- 234-"+@time+"- @error @serror "? ENDIF
?"- 235-"+@time+"- @error @serror "? ENDIF
?"- 236-"+@time+"- @error @serror "? ;
?"- 237-"+@time+"- @error @serror "? IF ($update = "yes") OR ($debug_mode = "yes")
?"- 238-"+@time+"- @error @serror "? COPY $source_file $destination_file /h
?"- 239-"+@time+"- @error @serror "? $update_info=$update_info+" +"+LCASE($kix_files[$i])
?"- 240-"+@time+"- @error @serror "? ELSE
?"- 241-"+@time+"- @error @serror "? $update_info=$update_info+" ="+LCASE($kix_files[$i])
?"- 242-"+@time+"- @error @serror "? ENDIF
?"- 243-"+@time+"- @error @serror "? IF (@error <> 0)
?"- 244-"+@time+"- @error @serror "? ? "Warning INSTALL "+@error+": "+@serror
?"- 245-"+@time+"- @error @serror "?
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's