• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Oleg_Sch

7z SFX Modified Module and Tools

511 posts in this topic

testSFX.exe -InstallPath="C:\\Install\\Test"

Double slash in the path!

Hello gora,

That is exactly what I was looking for. It works perfectly.

Thank you.

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

You can help me make it (Sfx add password)

0

Share this post


Link to post
Share on other sites

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
0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

@Gora,

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

Cheers and Regards

0

Share this post


Link to post
Share on other sites

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@!

0

Share this post


Link to post
Share on other sites

OK Thanks!

Cheers and Regards

0

Share this post


Link to post
Share on other sites

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
0

Share this post


Link to post
Share on other sites

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

No. Only AFTER extracting.

0

Share this post


Link to post
Share on other sites

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,

0

Share this post


Link to post
Share on other sites
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"

0

Share this post


Link to post
Share on other sites

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
0

Share this post


Link to post
Share on other sites

2 Oleg_Sch,

I am using version 1.5.0.2367 of the modified module on XP SP3 x86.

I created a config.txt with Language Sections.

By chance, there were syntax errors in the Language Sections, but the Main Section was without any syntax errors.

After I made the SFX with this config.txt, I tested it by running the SFX with the language switch -sfxlang:nnnn.

The software was installed but the language section was NOT run. There were NO error messages.

Usually, if the main section has syntax errors there is an error message giving the line number where the syntax error is located.

After I corrected the syntax error in the config.txt and rebuilt the SFX. I tested again with the language switch and the result was that the software was installed and the language section WAS run.

So, I think this would be a bug. Shouldn't the module give a similar error message for syntax errors in the language sections of the config.txt?

Otherwise it appears as if the installation is complete, including the language section parameters.

Thanks again, for a very useful tool.

0

Share this post


Link to post
Share on other sites

2 visegrip

1 Show your config file (with errors)

2 Give the step by step instructions to reproduce the bug.

0

Share this post


Link to post
Share on other sites

2 visegrip

1 Show your config file (with errors)

2 Give the step by step instructions to reproduce the bug.

First, I am sorry but my description of the issue in my previous post is not correct.

So, ignore my previous post completely.

After more testing, this particular syntax error is not detected by the module at all.

It doesn't matter if it is in the main section or a language section of the config.txt.

I am sorry if this is a previously known limitation of the module.

Therefore, I have reduced the config.txt to:

;!@Install@!UTF-8!
GUIMode="2"
MiscFlags="4"
Title="PhotoScape v.3.6.2"
SetEnvironment="app_name=PhotoScape"
SetEnvironment="app_path=%ProgramFiles%\\%app_name%\\"
SetEnvironment="add_reg=rundll32.exe advpack.dll,LaunchINFSection PhotoScapeReg.inf,DefaultInstall,3,N"
SetEnvironment="add_files=hidcon:xcopy %app_name% \"%app_path%\" /s /e /i /y"
RunProgram="%add_files%"
RunProgram="%add_reg%"
RunProgram="hidcon:cmd /c copy Lang\\ar\\lang_3_6.txt\" \"%app_path%\" /y"
Shortcut="P,{%app_path%\\%app_name%.exe},{},{%app_name%},{},{%app_name%}"
Shortcut="Du,{%app_path%\\%app_name%.exe},{},{},{},{%app_name%}"
Shortcut="26,{%app_path%\\%app_name%.exe},{},{Microsoft\\Internet Explorer\\Quick Launch},{},{%app_name%}"
;!@InstallEnd@!

The syntax error is on line 11. There is \" after lang_3_6.txt (which should not be there.)

This mistake causes line 11 to fail however no error message is ever given by module.

So, apparently the module is not capable of detecting this type of syntax error. ("hanging": \")

Perhaps it could be added to the detection method of the module?

0

Share this post


Link to post
Share on other sites

2 visegrip

It's not a bug!

Example:

;!@Install@!UTF-8!
RunProgram="cmd /k Echo Print one double quote \" "
RunProgram="cmd /k Echo Print two double quotes \" \" "
RunProgram="cmd /k Echo Print three double quotes \" \" \" "
;!@InstallEnd@!

Another example:

;!@Install@!UTF-8!
SetEnvironment="prnt=cmd /k Echo Print path \"%programfiles%\\"
RunProgram="%prnt%7-Zip\""
RunProgram="%prnt%Adobe\\Reader 10.0\""
;!@InstallEnd@!

All the lines are correct!

Edited by gora
0

Share this post


Link to post
Share on other sites

Hmmmm.

I understand both your examples.

Thanks for those.

So, to allow the possibility of your examples, my example is not detected as a syntax error by the module?

Or to say it another way, if line 11 in my example is not a syntax error according to the module--what should be the expected result of line 11?

0

Share this post


Link to post
Share on other sites

The module checks syntax of a design:

Parameter_name="value_parameter"

In "value_parameter" there should not be double quotes without a slash.

The module doesn't check even/odd number of double quotes with slashes in "value_parameter".

The rest in "value_parameter" the user should supervise all.

The module can't replace a brain of the user! :no:

0

Share this post


Link to post
Share on other sites

In "value_parameter" there should not be double quotes without a slash.

The module doesn't check even/odd number of double quotes with slashes in "value_parameter"...

This explains everything.

I guess I was expecting too much after receiving syntax error messages in the past which helped me to correct mistakes I had made.

I guess syntax highlighting for \" would be nice in the text editor.

Thanks again, gora. You have helped me to understand the working of the module a bit better.

0

Share this post


Link to post
Share on other sites

I use EmEditor with highlighting. It looks so

0

Share this post


Link to post
Share on other sites

Yes, something like that would be nice to use with config.txt.

0

Share this post


Link to post
Share on other sites

2 Oleg_Sch or gora,

Is %7zSfxFolder43% equivalent to:

%PROGRAMFILES%\Common Files

or

C:\Program Files\Common Files

??

0

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.