Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 

Oleg_Sch

7z SFX Modified Module and Tools

Recommended Posts

gora    6

Author's response, original here

Translation by Google

FAQ

Q: whether it is possible for the sfx archive to create a password that is the usual starting sfx archives as it does not ask himself introduced, and when you try to just unpack it asked for the password

A: It is impossible. Modules with this support is not available officially. While using his "power", I give these modules only to those who helped me / puts some effort in the development of the module, references to it and related files. Consider it my selfishness.

Share this post


Link to post
Share on other sites
ElDiabl0    0

I'm at a loss on how to extract something to C:\ProgramData\ on Vista/7 or "C:\Documents and Settings\All Users\Application Data\" on XP.

I do know the path is stored in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders (the entry which contains the path is 'Common AppData')

But if I do a reg query and attempt to copy the file to the location I got from the registry, the environment variable isn't converted to a path, so instead of copying the files to "C:\ProgramData\" the batch will consider "%ProgramData%" as a folder name instead of a variable. The same happens on XP, except the default value of the entry is "%ALLUSERSPROFILE%\Application Data"

I haven't found a way to reparse the variable to get the actual path.

This is what I'm using to query the registry

FOR /F "tokens=3* delims=	 " %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common AppData"') DO SET extractpath=%%B

What I need is a way to reparse %extractpath% to get the full path instead of the environment variable.

The reason I can't just type the path on the SFX config is because it needs to work on every Windows locale and it also needs to work whether the value of "Common AppData" is the default or not.

Edit: Nevermind. I can get the full path from "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

Anyone looking for something similar this is what I've come up with. Not sure if it's the easiest/best option but...

RunProgram="hidcon:cmd /C FOR /f \"tokens=3*\" %a IN ('REG QUERY \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\" /v \"Common Appdata\" ^| findstr /c:\"Common Appdata\"') DO XCOPY \"%temp%\\Whatever_folder_or_file_Im_copying" \"%b\\Folder\" /H /E /Y"

The above code will copy something from "%temp%\Whatever_folder_or_file_Im_copying" to "C:\ProgramData\Folder" on Windows Vista or newer.

On XP/2k3 it will copy from "%temp%\Whatever_folder_or_file_Im_copying" to "C:\Documents and Settings\All Users\Application Data\Folder" or the equivalent 'Common AppData' folder on non-english versions of Windows.

Edited by ElDiabl0

Share this post


Link to post
Share on other sites
gora    6

2 ElDiabl0

Everything is much easier ...

RunProgram="hidcon:XCOPY \"%temp%\\Whatever_folder_or_file_Im_copying\" \"%7zSfxFolder35%\\Folder\" /H /E /Y"

The value of the variable:

Win XP

7zSfxFolder35=C:\Documents and Settings\All Users\Application Data

Win 7

7zSfxFolder35=C:\ProgramData

Share this post


Link to post
Share on other sites
bphlpt    104

@Gora,

Thanks! Is there a handy link to the list of all the built-it variables and their definitions?

Cheers and Regards

Share this post


Link to post
Share on other sites
gora    6

2 bphlpt

You can create this list yourself...

;!@Install@!UTF-8!
RunProgram="cmd /c @echo off& set& pause>nul"
AutoInstall="hidcon:cmd /c set>%SystemDrive%\\vars.txt"
; This SFX archive was created using "Button for creation and work with 7z SFX archives v4.1.4.1919 [x64]" 19.03.2012 13-22. The last version of "Button" you can find on http://buttontc.7zsfx.info
;!@InstallEnd@!

Share this post


Link to post
Share on other sites
ElDiabl0    0

2 ElDiabl0

Everything is much easier ...

RunProgram="hidcon:XCOPY \"%temp%\\Whatever_folder_or_file_Im_copying\" \"%7zSfxFolder35%\\Folder\" /H /E /Y"

The value of the variable:

Win XP

7zSfxFolder35=C:\Documents and Settings\All Users\Application Data

Win 7

7zSfxFolder35=C:\ProgramData

I cant really add one variable for each WinXP locale and the 'Common AppData' folder may also be stored on another location.

Edit: Just realized what you meant, and yes, extracting to %7zSfxFolder35% is a lot better than what I was doing.

Question, can I run a cmd command to kill a process BEFORE extracting the files to InstallPath=?

Edited by ElDiabl0

Share this post


Link to post
Share on other sites
gora    6

Question, can I run a cmd command to kill a process BEFORE extracting the files to InstallPath=?

No. Only AFTER extracting.

Share this post


Link to post
Share on other sites
Escorpiom    2

I'm testing the latest 7z SFX "all" module, but sometimes there's an error:

Insufficient physical memory available. Extracting might take a long time

Given the fact that this is a silent install, it would be nice if there was some method to suppress this message?

Cheers,

Share this post


Link to post
Share on other sites
gora    6
some method to suppress this message?

MiscFlags="x"

1 - do not check the disk space required for the extraction process

2 - do not check the size of physical memory required for the extraction process

4 - ...

8 - ...

Flags can be added, for example, MiscFlags="1+2"

Share this post


Link to post
Share on other sites
odar    0

for 7zsd
http://www43.zippyshare.com/v/89885809/file.html
in this packet sfx container module 7zsd with resources hacker and cmenu and extraico
extract automatic in %programfiles%\7zsfx
into folder 7zsfx file .bat
with cmenu create context menu for .bat file
file bat compress folder in .7z and create file configsfx.txt for 7zsfx
open file configsfx.txt during process for modifier file when closing continue process
and create sfx with name folder and lunch file.exe
with extraico estract ico file from .exe and with reshacker change ico in the file sfx
problem cmenu dont work in win 7
don't create menu context for this utility

Edited by odar

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×