Jump to content

Universal Extractor


nitro322

Recommended Posts

Additionally, if you start UniExtract directly, it doesn't let you save options if you haven't selected a file.

Yes, I'm aware of this. Is that a problem? I've updated 1.4.1 to reinitialize the GUI when a new language is selected, so that it displays the correct language immediately after selection, but it's still not written to the INI file until after a file is selected and execution begins. Given that the whole purpose of UniExtract is to extract files, I don't see why you'd have any need to run it for any other reason. If you do have some issue with this, though, please let me know.

It could have been an issue if you got stuck with history=0, then you could not change the setting because of the GUICtrlSetData bug. Of course, editing the INI helped. :)

Guess it's solved with the new version. Downloading now.

And an observation: without the Lang/English.ini file, it displays only question marks in the gui. I suggest it has some (English?) built in strings for fallback - who knows what could happen on a user's computer and you would get many unnecessary support questions.

This is also a known issue. There are about 130 separate language items defined in the language INI files. It would be rather time-consuming, as well as increase ongoing maintenance time, to hardcode these items. Given that use of Universal Extract already requires a group of files in a particular order (all support binaries under bin\, for example), I don't think it's unreasonable to expect that users leave the lang\ directory intact.

By the way, the ??? is hardocded so that I know if a particular language item is missing. It's a debugging item for me. Users (obviously) should never see it, assuming that all translation files are correct.

You're the author, do what you have to do. :) I just thought I'd report it. This issue showed up because I copied the binaries while trying to leave out as many .txt files as I could (I always do that with new installs. If I want to read the Readme, I'll extract it from the archive.) So you could say I UniExtracted Uniextractor. :)

Happy holiday(s)

GL

Link to comment
Share on other sites


I just installed 1.4.1 on a German Vista build 5744, and when after opening UE I try to select an archive/installer file, an AutoIt Error window tells me that:

Line 0 (File "C:\Program Files\Universal Extractor\UniExtract.exe"):

GUICtrlSetState($ok, $GUI_FOCUS)
GUICtrlSetState(^ERROR

Error: Variable used without being declared.

Link to comment
Share on other sites

I just installed 1.4.1 on a German Vista build 5744, and when after opening UE I try to select an archive/installer file, an AutoIt Error window tells me that:

Line 0 (File "C:\Program Files\Universal Extractor\UniExtract.exe"):

GUICtrlSetState($ok, $GUI_FOCUS)
GUICtrlSetState(^ERROR

Error: Variable used without being declared.

A couple other people have e-mailed me about this issue as well. I recommend holding off on the 1.4.1 upgrade at this time. It may be a few days before I'm able to fix the problem and release a new version, so please continue to use 1.4 or 1.3.1 for now. I'll post another note once I've had a chance to fully investigate.

Link to comment
Share on other sites

Hello everybody. I've also got an error message as the post above, and i was wondering, does anybody in this forum have a previous version of UniExtract that they can send me. The problem is i never check if the newer version works, and i just replace the older versions with the new one. But today i tried extracting something, and got the error message.

Laterz,

dA CLOwN

Link to comment
Share on other sites

<snip>

does anybody in this forum have a previous version of UniExtract that they can send me.

<snip>

I was in the same boat. I had v1.3.1 but wanted to at least have the benefits of 1.4.0. So, for the heck of it I tried removing the trailing '1' from the 1.4.1 download link and voila! Try this link.

rotjong

PS: Grrr. Apparently it's v1.4.1, as well. *sigh*

Edited by rotjong
Link to comment
Share on other sites

Line 0 (File "C:\Program Files\Universal Extractor\UniExtract.exe"):

GUICtrlSetState($ok, $GUI_FOCUS)

GUICtrlSetState(^ERROR

Error: Variable used without being declared.

A quick fix for those of you who want to use 1.4.1 is just to make that variable a global instead of local

Line 1202:

local $ok = GUICtrlCreateButton(t('OK_BUT'), 55, 170, 80, 20)

Changed to

global $ok = GUICtrlCreateButton(t('OK_BUT'), 55, 170, 80, 20)

I think the reason it's complaining is that it's being called from a function outside the scope of where the variable is declared.

Edited by d4vr0s
Link to comment
Share on other sites

I'm back at my computer now, so I'll try to get an update out ASAP. As for some of the previous comments...

Hello everybody. I've also got an error message as the post above, and i was wondering, does anybody in this forum have a previous version of UniExtract that they can send me.

I plan on adding an archived section to my website for just such a need. I've actually maintained copies of UniExtract going all the way back to version 0.8, but they currently sit on my home file server. I'll make it available through my website at some point.

I was in the same boat. I had v1.3.1 but wanted to at least have the benefits of 1.4.0. So, for the heck of it I tried removing the trailing '1' from the 1.4.1 download link and voila! Try this link.

PS: Grrr. Apparently it's v1.4.1, as well. *sigh*

Yeah, I have all older links set to automatically download the latest version. Nearly every release I put out fixes bugs in addition to any new feature support, so I want to make sure that people are always downloading the latest version, even if they're following an old link. As I said above, I plan on making archives copies available through my website, but that'll be hosted separately than the current release.

That... The Simplified Chinese Language File is not by me.

My name is not Huangjunwei ~~

And I think my LangFile is a bit more accurate than his :D

That was the only Chinese file that was e-mailed to me. Can you send me yours? I have no problem including it if it's more accurate.

I think the reason it's complaining is that it's being called from a function outside the scope of where the variable is declared.

This is most likely the issue, as you pointed out. This issue crept in while adding support for dynamic language selection in 1.4.1. It was a rushed release, as I was trying to get it out before heading out of town for the holidays, and I missed this issue in my testing. My bad. :( As I stated at the beginning of the post, I'm going to put out a new release ASAP to fix this issue. Stay tuned.

Link to comment
Share on other sites

I originally planned on releasing 1.4.2 tonight to just address the crashing issue that was previously reported, but in the process of working on it I decided to throw in some other stuff as well. It's taking a little while longer than anticipated to get the changes made, and of course I'll want to do proper testing this time :whistle:, so in the meantime I'm making available a "patch" (for lack of a better term) to fix the issue for current 1.4.1 users. You can download an updated version of the UniExtract.exe binary from here:

http://www.legroom.net/~jbreland/transfer/UniExtract.exe

Replace the copy of UniExtract.exe in your existing install with this new version, then use as you normally would. I should have a proper 1.4.2 release out within the next day or so, so unless you're currently affected by the crash issue, you may want to just hold off until then before upgrading.

Link to comment
Share on other sites

I'm still working on 1.4.2...

I'm using every updated version of your program. Thank you very much!

I just hope you can add the version number to the topic title every time you release a new one.

Thanks again.

Link to comment
Share on other sites

Many thanks for your brilliant universal extractor. I am most impressed.

There is however 1 problem I6comp.exe cannot read InstallShield version 5 files.

The autodetect only distinguishes between different Installshield compression methods,

but not the archive architecture.

I have checked this on the following Installshield version 5 cabinet files

Photoshop v5.5 Data1.cab

Photoshop v 6 Data1.cab

Homesite v4.0 Data1.cab

These cabs CAN all be read and extracted using I5comp.exe, which you can find on the net

ftp://ftp.elf.stuba.sk/pub/pc/pack/i5comp21.rar

It requires two compression DLLs: ZD50149.dll and ZD51145.dll. The earlier compression dll

is never used in version 6 CABs

You can distinguish version 5 archives by their signature

I S c (

49 53 63 28 01

version 6 archives start with

I S c (

49 53 63 28 0C

Added:

I have added the code for I5comp to Uniextract.au3

Here are the details

1. Added a variable

$is5cab = "i5comp.exe"

after the definition of $iscab

2. modified following code in the main program

elseif $fileext = "cab" then

runwait($cmd & $7z & ' l "' & $file & '"' & $output, $filedir, @SW_HIDE)

if stringinstr(filereadline($debugfile, 4), "Listing archive:", 0) then

extract("cab", t('CAB'))

else

; this code replaces the single line extract("iscab", t('ISCAB')

runwait($cmd & $ISCAB & ' l "' & $file & '"' & $output, $filedir, @SW_HIDE)

if stringinstr(filereadline($debugfile, 9), "Date", 0) then

extract("iscab", t('ISCAB'))

else

extract("is5cab",t('ISCAB'))

endif

endif

filedelete($debugfile)

3. added the following code in the function extract after case $arctype == "iscab":

case $arctype == "is5cab"

$choice = ISSelect()

; Extract with i5comp by referencing individual files

if $choice == "i6comp_files" then

runwait($cmd & $is5cab & ' l -o -r -d "' & $file & '"' & $output, $outdir)

$infile = fileopen($debugfile, 0)

$line = filereadline($infile)

do

$isfile = stringtrimleft($line, stringinstr($line, ' ', 0, -1))

runwait($cmd & $is5cab & ' x -r -d "' & $file & '" "' & $isfile & '"', $outdir, @SW_HIDE)

$line = filereadline($infile)

until @error

fileclose($infile)

; Extract with i5comp in default group mode

elseif $choice == "i6comp_groups" then

runwait($cmd & $is5cab & ' x -r -d "' & $file & '"', $outdir, @SW_HIDE)

endif

4. I have alse made the group extract button the default (group extraction is much faster):

In function ISSELECT():

GUICtrlSetState($is2, $GUI_CHECKED)

instead of $is1, $GUI_CHECKED

5. Finally I have changed the entry in the langage file for the radiobuttons

from i6comp to iscomp.

I have checked that this version extracts all the I5comp and I6comp cabs

I can get hold of and hope it is of use to you.

I would be happy to mail you the full .au3 file if it is of any use.

Oliver

orlp

Edited by orlp
Link to comment
Share on other sites

I just posted Universal Extractor 1.4.2. This version has a lot of improvements, including a fix for the crash issue in 1.4.1. Highlights include:

  • Full internationalization support for installer
  • New preferences page for installer to set history and debug options introduced in 1.4
  • Four new languages included by default
  • Various bug fixes for Windows 9x

Please see the first post[/rul] of this thread for downloads and detailed change information.

Link to comment
Share on other sites

I just hope you can add the version number to the topic title every time you release a new one.

That's a good idea. I'll start doing that.

Edit: Well, I tried to do it, but couldn't figure out how. :( Is it possible for a non-admin to change the title of threads?

There is however 1 problem I6comp.exe cannot read InstallShield version 5 files.

The autodetect only distinguishes between different Installshield compression methods,

but not the archive architecture.

orlp, thanks for all of your work on this. This has been requested several times in the past, but I was never able to get any sample apps to use for testing. Your code looks good, and I'd certainly like to add it to the next version of UniExtract (I couldn't do it in time for 1.4.2), but I still need one or more sample apps for testing. Could you please post a download link to an application that uses this format?

Thanks!

Edit: After rereading your post I see that you mentioned a couple apps. Unfortunately, I don't have a copy of Photoshop, and obviously you can't post download links for it. Do you happen to know of any other apps, preferably freeware or shareware, that use this format? I'm not familiar with Homesite; is that something I can download?

Edited by nitro322
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...