Break On

;
; Gui interface for creating encrypted KiXtart packages.
;
; This is BETA quality - no serious bugs, but not yet completed.
;
; Enjoy!
;
; Richard Howarth (rhowarth@sgb.co.uk)
;

Global $HTMLFILE
$HTMLFILE="%TEMP%\kcgen.html"

Del $HTMLFILE

"Generating HTML File..." ?
Call fnMakeHTML()

"Starting IE instance..." ?
$oIE = CreateObject("InternetExplorer.Application")
$oIE.Visible=1
$oIE.Navigate($HTMLFILE)
; Wait for page to stop loading...
While $oIE.busy AND $oIE.readystate <4 AND @ERROR = 0 Loop
$oDoc=$oIE.document

$nul=SetConsole("HIDE")
$iStatus=$oDoc.frmMain.Status.value
While @ERROR=0
 If $iStatus=1
  $oDoc.frmMain.Status.value=0
  $nul=SetConsole("SHOW")
  $nul=SetConsole("FOREGROUND")
  Cls
  "Generating crypted.exe - check below for errors..." ?
  "-----OUTPUT BEGINS-----" ?
  Shell $oDoc.frmCommand.textCommand.value
  "-----END OF OUTPUT-----" ?
  "Hit return to continue: " Gets $nul ?
  $nul=SetConsole("HIDE")
  Cls
 EndIf
 Sleep(0.5)
 $iStatus=$oDoc.frmMain.Status.value
Loop
$nul=SetConsole("SHOW")
$nul=SetConsole("FOREGROUND")

; Clean up and exit.
Del $HTMLFILE
Exit 0

Function fnMakeHTML()
    $nul=RedirectOutput($HTMLFILE)
    "<HTML>
     <SCRIPT Language=JAVASCRIPT>
     function fnAddSupportFile() {
      if(fnSelectionExists(frmMain.selFiles,frmAddSupport.fileSupport.value)==false) {
       if(frmAddSupport.fileSupport.value!='') {
           frmMain.selFiles.options[frmMain.selFiles.options.length]=new Option(frmAddSupport.fileSupport.value)
       }
      }
      fnMakeCommand();
      return true;
     }
   
     function fnDeleteSupportFile() {
      var iLoop
      for(iLoop=frmMain.selFiles.options.length;iLoop--;) {
       if(frmMain.selFiles.options[iLoop].selected){
        frmMain.selFiles.options[iLoop]=null
       }
      }
      frmAddSupport.reset();
      fnMakeCommand();
      return true;
     }
   
     function fnSelectionExists(selList,sValue) {
      var iLoop
      for(iLoop=selList.options.length;iLoop--;) {
       if(selList.options[iLoop].text==sValue)
        return true
      }
      return false
     }
   
     function fnMakeCommand() {
      var iLoop
      frmCommand.textCommand.value=''
      if(frmPrimaryFile.filePrimary.value=='')
       return false;
      frmCommand.textCommand.value='kixcrypt';
      if(frmOptions.radioDebug[0].checked==true)
       frmCommand.textCommand.value=frmCommand.textCommand.value + ' -d'
      if(frmOptions.radioIsKix[0].checked==false)
       frmCommand.textCommand.value=frmCommand.textCommand.value + ' -k'
      if(frmOptions.radioUseCOMSPEC[0].checked==false)
       frmCommand.textCommand.value=frmCommand.textCommand.value + ' -c'
      if(frmOptions.textPassword.value!='')
       frmCommand.textCommand.value=frmCommand.textCommand.value+' -p "
 '"' "'+frmOptions.textPassword.value + '" '"' "'
      for(iLoop=frmMain.selFiles.options.length;iLoop--;) {
       frmCommand.textCommand.value=frmCommand.textCommand.value+' -f "
 '"' "'+frmMain.selFiles.options[iLoop].text + '" '"' "'
      }
      frmCommand.textCommand.value=frmCommand.textCommand.value+' -m "
 '"' "'+frmOptions.textMessage.value + '" '"' "'
      frmCommand.textCommand.value=frmCommand.textCommand.value+' "
 '"' "'+frmPrimaryFile.filePrimary.value + '" '"' "'
      if(frmOptions.textProgram.value!=''){
       frmCommand.textCommand.value=frmCommand.textCommand.value+' '
       if(frmOptions.radioExeInPackage[0].checked==true){
        frmCommand.textCommand.value=frmCommand.textCommand.value + '%%%%KIXCRYPTDIR%%%%\\'
       }
       frmCommand.textCommand.value=frmCommand.textCommand.value+frmOptions.textProgram.value
      }
      return true;
     }
   
     function fnExecuteCommand() {
      frmMain.Status.value=1
     }
   
     </SCRIPT>
    <HEAD>
     <TITLE>KiXcrypt command line generator</TITLE>
    </HEAD>
    <BODY>
     <TABLE Align=Center>
     <FORM Name=frmPrimaryFile>
      <TR BGCOLOR=LightBlue>
       <TD>Primary file to encrypt:</TD>
       <TD><INPUT Type=FILE Name=filePrimary onChange='fnMakeCommand();'></TD>
      </TR>
     </FORM>
     <FORM Name=frmOptions>
      <TR>
       <TD>Is this a KiXtart script file?</TD>
       <TD>
        Y<INPUT Type=RADIO Name=radioIsKix Checked onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
        N<INPUT Type=RADIO Name=radioIsKix onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
       </TD>
      </TR>
      <TR BGCOLOR=LightBlue>
       <TD>Display DEBUG output?</TD>
       <TD>
        Y<INPUT Type=RADIO Name=radioDebug onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
        N<INPUT Type=RADIO Name=radioDebug Checked onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
       </TD>
      </TR>
      <TR>
       <TD>Include %COMSPEC% in command line?</TD>
       <TD>
        Y<INPUT Type=RADIO Name=radioUseCOMSPEC Checked onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
        N<INPUT Type=RADIO Name=radioUseCOMSPEC onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
       </TD>
      </TR>
      <TR BGCOLOR=LightBlue>
       <TD>Password:</TD>
       <TD><INPUT Type=TEXT Name=textPassword Size=20 Value='' onChange='fnMakeCommand()'></TD>
      </TR>
      <TR>
       <TD>
        Start up message:<BR>
        <FONT SIZE=-1>You may include the following in your text:<BR>
        &nbsp;&nbsp;$s : Replaced with the program name<BR>
        &nbsp;&nbsp;$v : Replaced with the program version<BR>
        &nbsp;&nbsp;$n : Replaced with a newline<BR></FONT>
       </TD>
       <TD VALIGN=Top><INPUT Type=TEXT Name=textMessage Size=40 Value='' onChange='fnMakeCommand()'></TD>
      </TR>
      <TR BGCOLOR=LightBlue>
       <TD>
        Command to execute unencrypted file:<BR>
        <FONT SIZE=-1>&nbsp;&nbsp;The '^s' will be replaced with the unencrypted filename</FONT>
       </TD>
       <TD VALIGN=Top><INPUT Type=TEXT Name=textProgram Size=40 Value='kix32.exe ^s' onChange='fnMakeCommand()'></TD>
      </TR>
      <TR>
       <TD>Is interpreter (e.g. kix32.exe) included in package?</TD>
       <TD>
        Y<INPUT Type=RADIO Name=radioExeInPackage onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
        N<INPUT Type=RADIO Name=radioExeInPackage Checked onclick ='fnMakeCommand()' onChange='fnMakeCommand()'>
       </TD>
      <TR>
     </FORM>
     <TR BGCOLOR=LightBlue>
      <TD Valign=TOP>Additional support files:</TD>
      <TD>
       <FORM Name=frmAddSupport>
       <INPUT Type=FILE Name=fileSupport Value='abcd' onSelect='fnAddSupportFile()' onChange='fnAddSupportFile()'>
       </FORM>
       <FORM Name=frmMain>
       <INPUT Type=HIDDEN Name=Status Value=0>
       <SELECT Name=selFiles Size=3 Multiple WIDTH=40></SELECT><BR>
       <INPUT Type=BUTTON Value='Remove Selected Files' onclick ='fnDeleteSupportFile()'>
       </FORM>
      </TD>
     </TR>
     <FORM Name=frmCommand>
      <TR>
       <TD ColSpan=2 Align=CENTER>
        <TEXTAREA Name=textCommand ROWS=3 COLS=70 onFocus='this.blur();'>
        </TEXTAREA>
       </TD>
      </TR>
      <TR>
       <TD ColSpan=2 ALIGN=CENTER>
        <INPUT Type=BUTTON Name=btnExecute Value='Execute Command!' onclick ='fnExecuteCommand()'>
       </TD>
     </FORM>
     </TABLE>
    </BODY>
    </HTML>"

    $nul=RedirectOutput("")
    Return
EndFunction

_________________________
!

download KiXnet