Skip to content

Commit

Permalink
Further improvements to updater, permission check and UI
Browse files Browse the repository at this point in the history
Added permission check and auto-elevation to plugin installation routine
Added HideStatusBox option
Added back is5comp as plugin, closes #18
Added /plugins command line switch
Fixed .mht, .msi detection
Fixed some untranslated terms in MethodSelect GUI
Fixed possible file not found bug in updater
Changed MethodSelect logic
Further custom definition improvements
  • Loading branch information
Bioruebe committed Jun 9, 2016
1 parent ce7ea8f commit cf0fd67
Show file tree
Hide file tree
Showing 12 changed files with 401 additions and 367 deletions.
Binary file modified English.ini
Binary file not shown.
653 changes: 297 additions & 356 deletions UniExtract.au3

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions UniExtractUpdater.au3
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,25 @@
; Script Start - Add your code below here

Const $sTitle = "Universal Extractor Updater"
Const $sUniExtract = "UniExtract.exe"
Const $sUniExtract = @ScriptDir & "\UniExtract.exe"

If Not FileExists($sUniExtract) Then Exit MsgBox(16, $sTitle, "Universal Extractor main executable not found in current directory.")
If $cmdline[0] < 1 Then Exit ShellExecute($sUniExtract, "/update")
If Not FileExists($cmdline[1]) Then Exit MsgBox(16, $sTitle, "Invalid update package passed to updater.")
$OSArch = @OSArch = 'X64'? 'x64': 'x86'

If $cmdline[0] == 2 Then
_UpdateFFMPEG()
ElseIf $cmdline[1] == "/pluginst" Then
Exit ShellExecute($sUniExtract, "/plugins")
Else
_UpdateUniExtract()
If Not FileExists($cmdline[1]) Then Exit MsgBox(16, $sTitle, "Invalid update package passed to updater.")
_UpdateUniExtract()
EndIf

Func _UpdateUniExtract()
If Not ProcessWaitClose($sUniExtract, 10) Then Exit MsgBox(16, $sTitle, "Failed to close Universal Extractor. Please terminate the process manually and try again.")

$sCmd = @ScriptDir & '\bin\' & $OSArch & '\7z.exe x -y -xr!UniExtract.ini -o"' & @ScriptDir & '" "' & $cmdline[1] & '"'
;~ MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$sCmd' & @CRLF & @CRLF & 'Return:' & @CRLF & $sCmd) ;### Debug MSGBOX
RunWait($sCmd)
Sleep(100)
FileDelete($cmdline[1])
Expand Down
4 changes: 3 additions & 1 deletion changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,12 @@
Added support for .swf files using swfextract (slow)
Added support for .uif image files using uif2iso
Added support for .daa, .gbi image files using daa2iso
Added support for ISO zipped image files using unisz
Added support for CreateInstall installers (plugin)
Added support for DGCA compressed files (plugin)
Added support for Android boot images (plugin)
Added support for Advanced Installer installers
Added support for Excelsior Installer executables
Added support for various CD/DVD image files (bin/cue, img, nrg, c2d, xbox iso, cdi) using iso.wcx plugin
Added support for ThinApp/Thinstall portable software using h4sh3m Virtual Apps Dependency Extractor (plugin, experimental)
Added support for audio decompression to wav using FFmpeg
Expand Down Expand Up @@ -140,7 +142,7 @@
Removed nrg2iso
Removed cdirip
Removed debug file options
Removed i3comp & i5comp due to ZD*.dll license problems
Removed i3comp
Removed remove temp option from GUI (can still be set via ini file)
Removed remove dupe option from GUI (it did not do anything)
Removed many options from installer as they are set on first start
Expand Down
9 changes: 8 additions & 1 deletion changelog_minor.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
Beta 3:

Beta 3 brings a brand new updater, fixes several errors related to missing permissions
and adds 8 formats to the list of extractable files.

Added support for .mp3, .wmv and .wma files
Added support for bcm compressed files using bcm
Added support for zpaq archives using zpaq
Added support for Android boot images using bootimg (plugin)
Added support for Excelsior Installer executables
Added support for ISO zipped using unisz
Added support for ISO zipped image files using unisz
Added status box to sfx script extraction
Added output directory permission check
Added update summary to update prompt
Added back is5comp (plugin)
Changed .exe detection logic for speed improvements
Changed file type detection: TrIDLib is now used for extraction, TrID for scan only mode, the library
version is much faster but returns less additional information
Expand All @@ -23,6 +28,7 @@ Beta 3:
Fixed helper binaries execution failing if %comspec% environment variable is unset
Fixed .pea detection
Fixed .chm extraction
Fixed .mht detection
Fixed FreeArc extraction
Fixed AdvancedInstaller extraction
Fixed registry keys are now being deleted after scanning if they did not exist before for ExeInfo, PEid
Expand All @@ -41,6 +47,7 @@ Beta 3:
Fixed syntax help dialog closing automatically
Fixed possible false positives when using checkNSIS function
Fixed password detection for some .rar files
Fixed some untranslated terms in MethodSelect GUI
Removed globalprefs option and preference storage in registry
Removed faad and flac, extraction is now handled by FFMPEG
Removed unnecessary input file moves
Expand Down
15 changes: 15 additions & 0 deletions def/arc.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[Display]
display=ARC
displayTypeTranslation=TERM_ARCHIVE

[Extract]
useCmd=1
executable=arc.exe
parameters=x %file
hide=1
log=1
patternSearch=0
initialShow=0

[List]
parameters=
12 changes: 12 additions & 0 deletions def/flv.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Display]
display=Flash Video
displayTypeTranslation=TERM_CONTAINER

[Extract]
useCmd=1
executable=FLVExtractCL.exe
parameters=-v -a -t -d %outdir %file
hide=1
patternSearch=0
initialShow=0
workingdir=%filedir
15 changes: 15 additions & 0 deletions def/lit.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[Display]
display=Microsoft LIT
displayTypeTranslation=TERM_EBOOK

[Extract]
useCmd=1
executable=clit.exe
parameters=%file %outdir
hide=1
log=1
patternSearch=0
initialShow=0

[List]
parameters=
27 changes: 27 additions & 0 deletions def/registry.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
; Detectied file type for TrID and Unix file tool, format:
; Definition File=Filetype

[Trid]
arc=ARC Compressed archive
flv=Flash Video
lit=Microsoft Reader eBook

[File]
arc=ARC archive data
flv=Macromedia Flash Video
lit=Microsoft Reader eBook Data
uu=uuencoded

; File extension fallback, format:
; Extension=Definition file

[Extensions]
arc=arc
flv=flv
lit=lit
msi=msi
uu=uu
uue=uu
wolf=arc_conv
xx=uu
xxe=uu
12 changes: 12 additions & 0 deletions def/uu.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Display]
display=UUencode
displayTypeTranslation=TERM_ENCODED

[Extract]
useCmd=1
executable=uudeview.exe
parameters=-p %outdir -i %file
hide=1
patternSearch=0
initialShow=0
workingdir=%filedir
Binary file modified lang/German.ini
Binary file not shown.
12 changes: 7 additions & 5 deletions todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,28 +19,31 @@ gif, apng
http://tlwiki.org/index.php?title=Tools

// New formats
100.0% (.ISZ) ISo Zipped format (4000/1)


// Extraction logic updates
Add cleanup function call if necessary
Disable _Run function's pattern search for extractors that do not provide percentage indicators
Use definition files if possible


// Usability:
statistics GUI http://www.autoitscript.com/forum/topic/161750-pie-chart/
inno: percentage indicator fixed?
arj percentage indicator //tee problem
Zip extraction: 'User input needed' message does not disappear
cleanup after extraction, e.g. {app}


// Bugs
jsmsi: .cab not found (working dir?)
qbms process seems to hang (with increased cpu usage) on large files with gaup_pro plugin (confirmed for null bytes, image file; might continue after a long time?)
Extracting to C:/ creates file in @ScriptDir
Unicode files are not moved to outdir if using unpack() function
$is6cab extractor might crash ('... is not working anymore'), resulting in batch processing stop


// Other:
Logging: quickbms, Crage
additional file types for arc_conv, ffmpeg
Disable _Run function's pattern search for extractors that do not provide percentage indicators


// Short term
Expand All @@ -52,7 +55,6 @@ include tridscan gui?
ntlea?



// Known bugs:
Converting to iso failes when iso file already exists (helper binary not terminating correctly)
Overwriting files in general depends on extractor (sometimes asks, sometimes overwrites without asking)
Expand Down

0 comments on commit cf0fd67

Please sign in to comment.