compile/compile-gui.ps1
if ((Get-Module -ListAvailable vds).count -gt 1){ $global:module = $(path $(Get-Module -ListAvailable vds)[0].path) } else { $global:module = $(path $(Get-Module -ListAvailable vds).path) } directory change "$module\compile" $MyForm = dialog create "Script Packager" 0 0 389 300 $MyForm.icon = "$module\res\compile.ico" $TextBox1 = dialog add $MyForm TextBox 25 20 250 20 dialog settip $textbox1 "Inputfile" $Button1 = dialog add $MyForm Button 25 275 75 20 "Browse" dialog property $TextBox1 Multiline "" dialog property $TextBox1 Maxlength "0" dialog property $TextBox1 Wordwrap "true" dialog property $TextBox1 Scrollbars "none" dialog property $TextBox1 acceptstab "" dialog property $TextBox1 acceptsreturn "" $TextBox2 = dialog add $MyForm TextBox 50 20 250 20 dialog settip $textbox2 "Outputfile" $Button2 = dialog add $MyForm Button 50 275 75 20 "Browse" dialog property $TextBox2 Multiline "" dialog property $TextBox2 Maxlength "0" dialog property $TextBox2 Wordwrap "true" dialog property $TextBox2 Scrollbars "none" dialog property $TextBox2 acceptstab "" dialog property $TextBox2 acceptsreturn "" $TextBox3 = dialog add $MyForm TextBox 75 20 250 20 dialog settip $textbox3 "Iconfile" $Button3 = dialog add $MyForm Button 75 275 75 20 "Browse" dialog property $TextBox3 Multiline "" dialog property $TextBox3 Maxlength "0" dialog property $TextBox3 Wordwrap "true" dialog property $TextBox3 Scrollbars "none" dialog property $TextBox3 acceptstab "" dialog property $TextBox3 acceptsreturn "" <# $TextBox4 = dialog add $MyForm TextBox 100 20 100 20 dialog settip $textbox4 "Title" dialog property $TextBox4 Multiline "" dialog property $TextBox4 Maxlength "0" dialog property $TextBox4 Wordwrap "true" dialog property $TextBox4 Scrollbars "none" dialog property $TextBox4 acceptstab "" dialog property $TextBox4 acceptsreturn "" $TextBox5 = dialog add $MyForm TextBox 100 135 100 20 dialog settip $textbox5 "Description" dialog property $TextBox5 Multiline "" dialog property $TextBox5 Maxlength "0" dialog property $TextBox5 Wordwrap "true" dialog property $TextBox5 Scrollbars "none" dialog property $TextBox5 acceptstab "" dialog property $TextBox5 acceptsreturn "" $TextBox6 = dialog add $MyForm TextBox 100 250 100 20 dialog settip $textbox6 "Company" dialog property $TextBox6 Multiline "" dialog property $TextBox6 Maxlength "0" dialog property $TextBox6 Wordwrap "true" dialog property $TextBox6 Scrollbars "none" dialog property $TextBox6 acceptstab "" dialog property $TextBox6 acceptsreturn "" $TextBox7 = dialog add $MyForm TextBox 125 20 100 20 dialog settip $textbox7 "Product" dialog property $TextBox7 Multiline "" dialog property $TextBox7 Maxlength "0" dialog property $TextBox7 Wordwrap "true" dialog property $TextBox7 Scrollbars "none" dialog property $TextBox7 acceptstab "" dialog property $TextBox7 acceptsreturn "" $TextBox8 = dialog add $MyForm TextBox 125 135 100 20 dialog settip $textbox8 "Copyright" dialog property $TextBox8 Multiline "" dialog property $TextBox8 Maxlength "0" dialog property $TextBox8 Wordwrap "true" dialog property $TextBox8 Scrollbars "none" dialog property $TextBox8 acceptstab "" dialog property $TextBox8 acceptsreturn "" $TextBox9 = dialog add $MyForm TextBox 125 250 100 20 dialog settip $textbox9 "Trademark" dialog property $TextBox9 Multiline "" dialog property $TextBox9 Maxlength "0" dialog property $TextBox9 Wordwrap "true" dialog property $TextBox9 Scrollbars "none" dialog property $TextBox9 acceptstab "" dialog property $TextBox9 acceptsreturn "" $TextBox10 = dialog add $MyForm TextBox 150 20 100 20 dialog settip $textbox10 "Version" dialog property $TextBox10 Multiline "" dialog property $TextBox10 Maxlength "0" dialog property $TextBox10 Wordwrap "true" dialog property $TextBox10 Scrollbars "none" dialog property $TextBox10 acceptstab "" dialog property $TextBox10 acceptsreturn "" #> $epCheckBox = dialog add $MyForm CheckBox 100 20 100 20 "Bypass ep" dialog property $CheckBox1 Appearance "Normal" dialog property $CheckBox1 Threestate "" $CheckBox1 = dialog add $MyForm CheckBox 100 135 100 20 "x86" dialog property $CheckBox1 Appearance "Normal" dialog property $CheckBox1 Threestate "" <#$CheckBox2 = dialog add $MyForm CheckBox 100 250 100 20 "x64" dialog property $CheckBox2 Appearance "Normal" dialog property $CheckBox2 Threestate "" #> $CheckBox3 = dialog add $MyForm CheckBox 125 20 100 20 "-sta" dialog property $CheckBox3 Appearance "Normal" dialog property $CheckBox3 Threestate "" <# $CheckBox4 = dialog add $MyForm CheckBox 125 135 100 20 "-mta" dialog property $CheckBox4 Appearance "Normal" dialog property $CheckBox4 Threestate "" #> $CheckBox5 = dialog add $MyForm CheckBox 100 250 100 20 "No Window" dialog property $CheckBox5 Appearance "Normal" dialog property $CheckBox5 Threestate "" $CheckBox6 = dialog add $MyForm CheckBox 150 16 335 20 "Require Admin" $Button4 = dialog add $MyForm Button 175 16 335 20 "Load .pil" $Button5 = dialog add $MyForm Button 200 16 335 20 "Save .pil" $Button6 = dialog add $MyForm Button 225 16 335 20 "Create Link" dialog property $CheckBox6 appearance "Button" dialog property $CheckBox6 textalign "MiddleCenter" if ($args[0]) { inifile open $args[0] $textbox1.text = $(iniread compile inputfile) $textbox2.text = $(iniread compile outputfile) $textbox3.text = $(iniread compile iconfile) $textbox4.text = $(iniread compile title) $textbox5.text = $(iniread compile description) $textbox6.text = $(iniread compile company) $textbox7.text = $(iniread compile product) $textbox8.text = $(iniread compile copyright) $textbox9.text = $(iniread compile trademark) $textbox10.text = $(iniread compile version) if ($(iniread compile bypass) -eq 'False'){$epCheckBox.checked = $false}else{if ($(iniread compile ep) -eq 'True'){$epCheckBox.checked = $true}} if ($(iniread compile x86) -eq 'False'){$checkbox1.checked = $false}else{if ($(iniread compile x86) -eq 'True'){$checkbox1.checked = $true}} if ($(iniread compile x64) -eq 'False'){$checkbox2.checked = $false}else{if ($(iniread compile x64) -eq 'True'){$checkbox2.checked = $true}} if ($(iniread compile sta) -eq 'False'){$checkbox3.checked = $false}else{if ($(iniread compile sta) -eq 'True'){$checkbox3.checked = $true}} if ($(iniread compile mta) -eq 'False'){$checkbox4.checked = $false}else{if ($(iniread compile mta) -eq 'True'){$checkbox4.checked = $true}} if ($(iniread compile noconsole) -eq 'False'){$checkbox5.checked = $false}else{if ($(iniread compile noconsole) -eq 'True'){$checkbox5.checked = $true}} if ($(iniread compile requireadmin) -eq 'False'){$checkbox6.checked = $false}else{if ($(iniread compile requireadmin) -eq 'True'){$checkbox6.checked = $true}} } if ($args[1]) {directory change $args[1]} $button1.add_Click({$in = $(filedlg 'DialogShell|*.ds1|PowerShell|*.ps1') dialog set $textbox1 $in }) $button2.add_Click({$in = $(savedlg 'PowerShell|*.ps1|Command File|*.cmd') dialog set $textbox2 $in }) $button3.add_Click({$in = $(filedlg 'Icon|*.ico') dialog set $textbox3 $in }) $button4.add_Click({ $pil = $(filedlg 'Pil Files|*.pil') inifile open $pil $textbox1.text = $(iniread compile inputfile) $textbox2.text = $(iniread compile outputfile) $textbox3.text = $(iniread compile iconfile) $textbox4.text = $(iniread compile title) $textbox5.text = $(iniread compile description) $textbox6.text = $(iniread compile company) $textbox7.text = $(iniread compile product) $textbox8.text = $(iniread compile copyright) $textbox9.text = $(iniread compile trademark) $textbox10.text = $(iniread compile version) if ($(iniread compile bypass) -eq 'False'){$epCheckBox.checked = $false}else{if ($(iniread compile ep) -eq 'True'){$epCheckBox.checked = $true}} if ($(iniread compile x86) -eq 'False'){$checkbox1.checked = $false}else{if ($(iniread compile x86) -eq 'True'){$checkbox1.checked = $true}} if ($(iniread compile x64) -eq 'False'){$checkbox2.checked = $false}else{if ($(iniread compile x64) -eq 'True'){$checkbox2.checked = $true}} if ($(iniread compile sta) -eq 'False'){$checkbox3.checked = $false}else{if ($(iniread compile sta) -eq 'True'){$checkbox3.checked = $true}} if ($(iniread compile mta) -eq 'False'){$checkbox4.checked = $false}else{if ($(iniread compile mta) -eq 'True'){$checkbox4.checked = $true}} if ($(iniread compile noconsole) -eq 'False'){$checkbox5.checked = $false}else{if ($(iniread compile noconsole) -eq 'True'){$checkbox5.checked = $true}} if ($(iniread compile requireadmin) -eq 'False'){$checkbox6.checked = $false}else{if ($(iniread compile requireadmin) -eq 'True'){$checkbox6.checked = $true}} }) $Button5.add_Click({ $pil = $(savedlg 'Pil Files|*.pil') inifile open $pil inifile write compile inputfile $TextBox1.text inifile write compile outputfile $textbox2.text inifile write compile iconfile $textbox3.text inifile write compile title $textbox4.text inifile write compile description $textbox5.text inifile write compile company $textbox6.text inifile write compile product $textbox7.text inifile write compile copyright $textbox8.text inifile write compile trademark $textbox9.text inifile write compile version $textbox10.text inifile write compile ep $epCheckBox.checked inifile write compile x86 $checkbox1.checked inifile write compile x64 $checkbox2.checked inifile write compile sta $checkbox3.checked inifile write compile mta $checkbox4.checked inifile write compile noconsole $checkbox5.checked inifile write compile requireadmin $checkbox6.checked }) $button6.add_Click({ $seven = $null $powerstring = "" if ($(ext $textbox2.text) -eq "ps1") { if ($checkbox1.checked -eq $true) { $powerstring = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" } else { $powerstring = "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" } if ($epCheckBox.checked -eq $true) { $paramstring = "-executionpolicy bypass" } if ($checkbox3.checked -eq $true){ if ($(len $paramstring) -gt 0){ $paramstring += " -sta" } else{$paramstring = "-sta"} } if ($checkbox5.checked -eq $true){ $seven = 7 if ($(len $paramstring) -gt 0){ $paramstring += " -windowstyle hidden" } else{$paramstring = "-windowstyle hidden"} } $ctf1 = Get-Content -Path "$module\vds.psm1" -Encoding UTF8 -ErrorAction SilentlyContinue $ctf2 = Get-Content -Path $textbox1.text -Encoding UTF8 -ErrorAction SilentlyContinue Remove-Item -path $textbox2.text -force Add-Content $textbox2.text $ctf1 Add-Content $textbox2.text $ctf2 link "$($textbox2.text).lnk" $powerstring "" $textbox3.text "$paramstring -file $(chr 34)$($textbox2.text)$(chr 34)" $checkbox6.checked $seven } if ($(ext $textbox2.text) -eq "cmd") { if ($checkbox1.checked -eq $true) { $powerstring = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" } else { $powerstring = "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" } if ($epCheckBox.checked -eq $true) { $paramstring = "-executionpolicy bypass" } if ($checkbox3.checked -eq $true){ if ($(len $paramstring) -gt 0){ $paramstring += " -sta" } else{$paramstring = "-sta"} } if ($checkbox5.checked -eq $true){ $seven = 7 if ($(len $paramstring) -gt 0){ $paramstring += " -windowstyle hidden" } else{$paramstring = "-windowstyle hidden"} } $ctf1 = Get-Content -Path "$module\vds.psm1" -Encoding UTF8 -ErrorAction SilentlyContinue $ctf2 = Get-Content -Path $textbox1.text -Encoding UTF8 -ErrorAction SilentlyContinue $header = "IF [%1]==[] (set file1=$(chr 36)null) ELSE (set file1=%1) IF [%2]==[] (set file2=$(chr 36)null) ELSE (set file2=%2) IF [%3]==[] (set file3=$(chr 36)null) ELSE (set file3=%3) IF [%4]==[] (set file4=$(chr 36)null) ELSE (set file4=%4) IF [%5]==[] (set file5=$(chr 36)null) ELSE (set file5=%5) IF [%6]==[] (set file6=$(chr 36)null) ELSE (set file6=%6) IF [%7]==[] (set file7=$(chr 36)null) ELSE (set file7=%7) IF [%8]==[] (set file8=$(chr 36)null) ELSE (set file8=%8) IF [%9]==[] (set file9=$(chr 36)null) ELSE (set file9=%9) echo $(chr 36)global:1 = %file1%; $(chr 36)global:2 = %file2%; $(chr 36)global:3 = %file3%; $(chr 36)global:4 = %file4%; $(chr 36)global:5 = %file5%; $(chr 36)global:6 = %file6%; $(chr 36)global:7 = %file7%; $(chr 36)global:8 = %file8%; $(chr 36)global:9 = %file9%;vds >> $(chr 34)$(name $($textbox2.text)).cmd$(chr 34) $powerstring $paramstring invoke-expression(get-content $(chr 39)$(name $($textbox2.text)).cmd$(chr 39) ^| select -skip 12 ^| out-string) exit function vds{" $footer = "}$(cr)$(lf)$(chr 36)repvds = Get-Content $(chr 39).\$(name $($textbox2.text)).cmd$(chr 39) | Select-Object -SkipLast 1 $(cr)$(lf)$(chr 36)repvds | out-file $(chr 39).\$(name $($textbox2.text)).cmd$(chr 39) -enc ascii$(cr)$(lf)" Remove-Item -path $textbox2.text -force Add-Content $textbox2.text $header -enc ascii Add-Content $textbox2.text $ctf1 -enc ascii Add-Content $textbox2.text $ctf2.replace('$args[0]','$1').replace('$args[1]','$2').replace('$args[2]','$3').replace('$args[3]','$4').replace('$args[4]','$5').replace('$args[5]','$6').replace('$args[6]','$7').replace('$args[7]','$8').replace('$args[8]','$9') -enc ascii Add-Content $textbox2.text $footer -enc ascii link "$($textbox2.text).lnk" "$(chr 34)$($textbox2.text)$(chr 34)" "$(path $($textbox2.text))\" $textbox3.text "" $checkbox6.checked $seven } info "Process Complete" }) dialog show $MyForm |