7zsd.sfx / 7zSD_En.CHM: Undocumented Features

Questions or comments on the switchless installers? Want to create a new one? Talk about it here.
User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

7zsd.sfx / 7zSD_En.CHM: Undocumented Features

Post by shiner » Tue Apr 10, 2012 9:05 am

7zSD_En.chm is the English help manual for the modified 7zSFX module.
It can be found here.

The last version of 7zSD_En.chm was released for build 1501 of Oleg Scherbakov's modified 7zSFX module.
The current version of the modified module (build 2367) has several new features which are undocumented in that English version of the Help manual. A thread which reveals and explains these undocumented features may be helpful to users of the modified module. Anyone who has information on any undocumented features feel free to supplement, provide corrections, or expand on anything posted here. An authorative source on using the module is gora, who I hope will find time to post in this thread.

My main source of information is 7zSD_RU.chm, the Russian Help manual for build 2100 of the module. I downloaded it several months ago thinking to translate it into English with the help of Google Translate, but have not had the time to do so. The information should still be up to date for build 2367, which was a bugfix release. So I am starting this thread to get the info out to English users of the modified 7zSFX module. Some of the information I have accumulated from posts by gora or Oleg_Sch. And finally, a tiny bit of the information is from my own experience using the module.

Features in version 1.5.0.2367 (beta) not available in verion 1.4.3.2367 (stable):

%%P - environment variable
Values 4 and 8 for MiscFlags option.
waitall: -command prefix
BeginPromptTimeout="n" -timeout option for BeginPrompt or BeginPrompt+Extract dialog windows.

----------------------------------------------------------------------------

gora, please correct me if I post anything inaccurate or incomplete.
Last edited by shiner on Sat Apr 14, 2012 2:48 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:08 am

New Command prefixes:

x64
A command with this prefix is executed only on a 64-bit system. Also, the program to be run in the command will be performed in a 64-bit environment, regardless of bit depth of the module (x64 or x86).
When used on a 32-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.

x86
A command with this prefix is executed only on a 32-bit system. When used on a 64-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.

waitall (see note below)
A command with this prefix makes the module wait for the command to run and complete, including all the "child" processes that were created by running the command, before preceding to the next command.

Examples:

Code: Select all

RunProgram="x86:setup_x86.exe"
RunProgram="x64:setup_x64.exe"
RunProgram_"waitall:setup.exe"
Note: Looking through my notes for this post, the waitall prefix is only present in the 1.5 line, and began in version 1.5.0.1794.
I have not been successful in using the waitall prefix. gora may be able to shed some additional light on it.
Last edited by shiner on Fri Apr 13, 2012 6:28 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:12 am

A new variable has been defined in addition to the %%M, %%S, %%T variables,
(this variable was added starting in build 1.5.0.2079 and does not appear present in the stable 1.4 line)

%%P
- this variable is equivalent to "x86" or "x64" (no quotes) depending on the OS architecture in which the module is run.

One possible example:

Code: Select all

RunProgram="%%P\\typical.msi"
where in the SFX you have two directories named:
x86
x64

inside the x86 directory is a 32 bit installation named "typical.msi"
inside the x64 directory is a 64 bit installation named "typical.msi"

Many other possibilities to use this variable.
Last edited by shiner on Fri Apr 13, 2012 6:34 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:16 am

Other pre-defined variables and their destination directories (for XP):

7zSfxFolder00=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder02=C:\Documents and Settings\CurrentUser\Start Menu\Programs
7zSfxFolder05=C:\Documents and Settings\CurrentUser\My Documents
7zSfxFolder06=C:\Documents and Settings\CurrentUser\Favorites
7zSfxFolder07=C:\Documents and Settings\CurrentUser\Start Menu\Programs\Startup
7zSfxFolder08=C:\Documents and Settings\CurrentUser\Recent
7zSfxFolder09=C:\Documents and Settings\CurrentUser\SendTo
7zSfxFolder11=C:\Documents and Settings\CurrentUser\Start Menu
7zSfxFolder13=C:\Documents and Settings\CurrentUser\My Documents\My Music
7zSfxFolder14=C:\Documents and Settings\CurrentUser\My Documents\My Videos
7zSfxFolder16=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder19=C:\Documents and Settings\CurrentUser\NetHood
7zSfxFolder20=C:\WINDOWS\Fonts
7zSfxFolder21=C:\Documents and Settings\CurrentUser\Templates
7zSfxFolder22=C:\Documents and Settings\All Users\Start Menu
7zSfxFolder23=C:\Documents and Settings\All Users\Start Menu\Programs
7zSfxFolder24=C:\Documents and Settings\All Users\Start Menu\Programs\Startup
7zSfxFolder25=C:\Documents and Settings\All Users\Desktop
7zSfxFolder26=C:\Documents and Settings\CurrentUser\Application Data
7zSfxFolder27=C:\Documents and Settings\CurrentUser\PrintHood
7zSfxFolder28=C:\Documents and Settings\CurrentUser\Local Settings\Application Data
7zSfxFolder31=C:\Documents and Settings\All Users\Favorites
7zSfxFolder32=C:\Documents and Settings\CurrentUser\Local Settings\Temporary Internet Files
7zSfxFolder33=C:\Documents and Settings\CurrentUser\Cookies
7zSfxFolder34=C:\Documents and Settings\CurrentUser\Local Settings\History
7zSfxFolder35=C:\Documents and Settings\All Users\Application Data
7zSfxFolder36=C:\WINDOWS
7zSfxFolder37=C:\WINDOWS\system32
7zSfxFolder38=C:\Program Files
7zSfxFolder39=C:\Documents and Settings\CurrentUser\My Documents\My Pictures
7zSfxFolder40=C:\Documents and Settings\CurrentUser
7zSfxFolder41=C:\WINDOWS\system32
7zSfxFolder43=C:\Program Files\Common Files
7zSfxFolder45=C:\Documents and Settings\All Users\Templates
7zSfxFolder46=C:\Documents and Settings\All Users\Shared Documents
7zSfxFolder47=C:\Documents and Settings\All Users\Start Menu\Programs\Administrative Tools
7zSfxFolder53=C:\Documents and Settings\All Users\Shared Documents\My Music
7zSfxFolder54=C:\Documents and Settings\All Users\Shared Documents\My Pictures
7zSfxFolder55=C:\Documents and Settings\All Users\Shared Documents\My Videos
7zSfxFolder56=C:\WINDOWS\Resources
7zSfxFolder59=C:\Documents and Settings\CurrentUser\Local Settings\Application Data\Microsoft\CD Burning

Quick Launch shortcut Example:

Code: Select all

Shortcut="26,{%Path1%\\Program.EXE},{},{Microsoft\\Internet Explorer\\Quick Launch},{Description},{ProgramName}"
Administrative Tools shortcut Example:

Code: Select all

Shortcut="47,{%Path2%Program.EXE},{},{},{Description},{ProgramName}"
To use as a variable in a commmand, wrap the variable names in %, like:

Code: Select all

RunProgram="hidcon:cmd /c  copy \"%%T\\program.exe\"  \"%7zSfxFolder24%\" /y"
Someone please be kind enough to post a list of the destinations for the above variables on Win7.
Last edited by shiner on Tue Apr 10, 2012 9:48 am, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:21 am

MiscFlags="x"
(This option was first added in 1.5.0.1774 and later to 1.4.0.1898. The value 4 was added in 1.5.0.1795, and the value 8 was added in 1.5.0.1937. However, I do not believe the values 4 and 8 were ever added to the stable 1.4 line.)

The sum of the numeric values of flags, or the expanded expression "1+2". The order of the numerical values in the expression is irrevelant. Supported numerical values are defined as follows:

1 - Do not check the disk space required for the process of extracting.
2 - Do not check the size of physical memory required for the process of extracting, (useful for testing large highly compressed SFX in VM with limited memory.)
4 - Request administrative rights for all operations of the current SFX, if the user running the SFX does not have admistrative rights , (according to yumeyao in a past post, it does this by creating a separate process.)
8 - A separate password prompt window (dialog 'PasswordTitle') after the dialog 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath'. Without this flag, the dialog 'PasswordTitle' will appear in the 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath ' dialogs.

One possible example:

Code: Select all

MiscFlags="6"


These options can be overridden from the command line by using the switch '-mfX'.
Last edited by shiner on Fri Apr 13, 2012 6:54 am, edited 2 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:26 am

New password dialog box window options.

PasswordText="text"

Displays the specified text OVER password field (the default is "Enter password").
Example:

Code: Select all

PasswordText="Please enter the password."

PasswordTitle="new_title"

Changes the title of the Password dialog window, the default is the name of SFX archive (without extension). You can specify something like "This archive is encrypted."
Example:

Code: Select all

PasswordTitle="Password Protected Archive!"
I think these are to be used with MiscFlags=8 option...
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:30 am

Change default title for warning boxes. (There are currently two possible warning text messages.)

WarningTitle="title_for_warnings"

The window title warning (default: "7z SFX: Warning").

If the parameter is missing, instead of 'WarningTitle' in the warning window will display the name of SFX archive (without extension) to add ": a warning." If the name of SFX archive "unable to determine", it will display the default value.

The two possible warning text messages are defined in the module:

"Not enough physical memory.
Unpacking can take a long time."


or

"On the disk is not enough space to unpack."

Example:

Code: Select all

WarningTitle="7zSFX archive extraction warning!"
These warning boxes can be avoided by setting flags in the parameter 'MiscFlags', or
the warning windows can also be suppressed by using the switch '-mfX' from the command line.
Last edited by shiner on Tue Apr 10, 2012 9:42 am, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:38 am

New Command Line Switches

-bptX
Specifies a time countdown display dialog 'BeginPrompt' or a blend of dialogue 'BeginPrompt' + 'ExtractPath' and the default button, where X:

1 ... 999 - display window 1 ... 999 seconds, the countdown is displayed on the button "Yes" ("OK"), and upon its expiry, it will be pressed automatically.
-1 ... -999 - Display window 1 ... 999 seconds, the countdown is displayed on the button "No" ("Cancel"), and upon its expiry, it will be pressed automatically.
0 - ignored

This switch is used to change the 'BeginPromptTimeout' value which has been written in the configuration file.

========================================================

-mfx
The elevation of rights, separate password prompt, and showing of warning dialog boxes ('WarningTitle') can be suppressed with '-mfx' switch, where X is the sum of values of the MiscFlags:

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 - to request administrative rights for all operations of the current SFX, if such rights do not have the user running the SFX.
8 - the password prompt (dialog 'PasswordTitle') after the dialogues 'BeginPrompt' and 'ExtractPath', without this flag, the dialog 'PasswordTitle' dialog will appear before the 'BeginPrompt' and 'ExtractPath'

This switch is used to override values set in the option 'MiscFlags' which have been written in the configuration file.

========================================================

-pX
Specifies the password for encrypted SFX archives, where X = password with which the packaged source 7z archive has been encrypted.
Password without spaces can be specified without quotes. If there are gaps in the password, it must be in quotes.
Examples of use:

-sfx.exe -pPassword
-sfx.exe -p"Password with a space"

========================================================

-sfxlang
Specifies the language section of the existing configuration file that will be used when the SFX is executed.
The written form:-sfxlang: xxxx (where xxxx - language identifier). This switch must be the first on the command line.

Here are examples of switches to use Russian, Ukrainian, and English sections of an SFX:
-sfxlang:1049
-sfxlang:1058
-sfxlang:1033

Note: the configuration must be written to support the language before this switch will work on a multi-language section SFX.
Last edited by shiner on Tue Apr 17, 2012 10:45 pm, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Apr 10, 2012 9:39 am

New Option

BeginPromptTimeout="n"

This option can be used when the BeginPrompt or BeginPrompt+Extract command is used in a configuration file. (Also look at GUIFlags=64, and GUIFlags=128 options)
The value "n" defines the number of seconds the "Begin Prompt" or the "BeginPrompt + Extract "dialog window is shown before automatically proceeding on.
If n = a positive integer between 1 and 999 will countdown on the "YES" button. If and once the timeout completes the YES button is chosen and the installation proceeds.
If n = a negative number between -1 and -999 will countdown on the "NO" button. If and once the timeout completes the "NO" button is chosen and the installation is aborted.
If n = 0, there will be no countdown, "YES" or "NO' must be selected by the user for the installation to proceed or abort.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Sat Apr 14, 2012 3:19 am

1. I have made some edits and added more info to my previous posts.

2. There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
"You can lead a horse to water, but you can't make it drink."

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Sat Apr 14, 2012 3:23 am

Really appreciate this

User avatar
bphlpt
Posts: 1372
Joined: Sat Apr 19, 2008 1:11 am

Post by bphlpt » Sat Apr 14, 2012 3:32 am

shiner wrote:There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
I assume these are the type of features that gora took advantage of when creating his 4-in1 and 6-in-1 Java releases.

I would think that the multi-platform (x86/x64) features could be useful for most addon/installer makers these days. And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.

Thanks for posting all of this shiner. I hope that gora stops by and provides any corrections and other input that might be helpful.

Cheers and Regards

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Sat Apr 14, 2012 8:51 am

bphlpt wrote:
shiner wrote:There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.
I should clarify the multi-language section part I mentioned. The only languages currently supported by the module as far as multi- language sections are concerned are Russian, Ukrainian, and English. That's it. "Multi-language" here seems to mean targeting the use of loacalized installers for those 3 languages and maybe also dialog box support for them as well. Other languages are not yet supported.
Correction: Built-in messages for dialog boxes or either in Russian or English (only). If the 7zSFX is run on a system with a non-Russian interface, the built-in English messages are always shown. User-defined text in the dialog boxes can be in any language and for a multi-language config.txt used correctly when the appropriate language section has been defined in the configuration file.

So, for example, if the config.txt has two sections starting with:

Code: Select all

;!@Install@!UTF-8:Language:1049!

;!@Install@!UTF-8:Language:1033!
The section with 1049 would use Russian language installations and the 1033 would use English installations. When the 7zSFX is executed, it would check the default language of the host system and use the corresponding section.
Each section is closed with:

Code: Select all

;!@InstallEnd@:Language:1049!

;!@InstallEnd@:Language:1033!
The platform sections are similar, like so:

Code: Select all

;!@Install@!UTF-8:x86!

;!@Install@!UTF-8:x64!

;!@Install@!UTF-8:amd64!

and closed with:

Code: Select all

;!@InstallEnd@:x86!

;!@InstallEnd@:x64!

;!@InstallEnd@:amd64!
When the 7zSFX is executed, it would check the architecture ( 32 or 64 bit) of the host system and use the corresponding section.

If both platform and language sections are used in the configuration file, then the order of the section heading is important and the platform pararmeter must be before the language parameter, like so:

Code: Select all

;!@Install@!UTF-8:x64:Language:1033!
RunProgram="setup_64_en.exe"
;!@InstallEnd@:x64:Language:1033!


I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.
Last edited by shiner on Sat Apr 14, 2012 5:53 pm, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Sat Apr 14, 2012 10:52 am

shiner wrote: gora, please correct me if I post anything inaccurate or incomplete.
I do not read this forum all the time. I accidentally got into this thread.

1 New features of version 1.5 beta or when you do not enter the stable version 1.4. Wait when version 1.5 will take the status of the stable. This will only happen after a new stable version of 7-Zip

2 Support of multivolume and password SFX is only in the specific modules that are not laid out for download. The parameters associated with them, users can not be used without such modules

3
shiner wrote:Currently supported languages are Russian, Ukrainian, and English
Built-in message modules can only be in two languages ​​(Russian and English). All other text parameters can be in any language. This requires the appropriate language section in the config.

4
shiner wrote:I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.
I can read Russian texts! :D I can even write the Russian texts! But I can not write English texts. :oops: Excuse me. My native language is Russian.

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Sat Apr 14, 2012 6:03 pm

gora wrote:3
shiner wrote:Currently supported languages are Russian, Ukrainian, and English
Built-in message modules can only be in two languages ​​(Russian and English). All other text parameters can be in any language. This requires the appropriate language section in the config.
gora, I have attempted a correction of my previous post on sections. That was a good example of my troubles with the online translators.
gora wrote:4
shiner wrote:I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.
I can read Russian texts! :D I can even write the Russian texts! But I can not write English texts. :oops: Excuse me. My native language is Russian.
gora, you have been most helpful and thank you for replying. If you see a mistake in my posts just quote the wrong parts and say "This is not correct. It should be ..." With your help I am sure I can eventually get it right.
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Sun Apr 15, 2012 3:28 am

The history of the last help file:
1.5 beta (build 2367) 21/01/12
* Pressing the "Select Folder" on x64 platforms has led to an error (gora: forum.oszone.net)
+ Button to create "New Folder" dialog "Select Folder"

1.5 beta (build 2308) 22/11/11
* Manifest and the Russian string

1.4.3-Release (build 2367) 21/01/12
* Selecting a folder on x64 platforms led to an error (gora: forum.oszone.net)

1.4.2-Release (build 2308) 11/22/11
* Incorrect conditional compilation with the option _SFX_USE_LANG (YumeYao: msfn.org)

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Sun Apr 15, 2012 7:27 am

shiner wrote:I have not been successful in using the waitall prefix. gora may be able to shed some additional light on it.
Make two SFX with configs:
1

Code: Select all

;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c Echo Start "" notepad.exe >test.bat"
RunProgram="test.bat"
FinishMessage="FinishMessage"
;!@InstallEnd@!
2

Code: Select all

;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c Echo Start "" notepad.exe >test.bat"
RunProgram="waitall:test.bat"
FinishMessage="FinishMessage"
;!@InstallEnd@!
First SFX immediately after the launch Notepad will display a dialog finishmessage
Second displays SFX finishmessage only after closing the "child" process (in this case Notepad)

==============================================
Real multilingual configs can be found: Universal Extractor (2 languages​​), Button for work with 7z SFX archives (5 languages​​, link in my signature)

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Sun Apr 15, 2012 9:23 pm

Thanks gora for this example.
"You can lead a horse to water, but you can't make it drink."

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Thu Apr 19, 2012 1:25 am

bphlpt wrote:I would think that the multi-platform (x86/x64) features could be useful for most addon/installer makers these days. And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.
This is an example of a Universal Extractor configuration file that uses a language section taken from the Russian CHM help manual.
Text in yellow are comments translated from Russian, edited to improve the English slightly, and then expanded by me to help understand what is meant.
Edit 20120519
Clarification on the meaning of the expressions "multiple parameters" and "non-multiple parameters" :
multiple parameters are any which can be used several times in a single section of the config.txt, for example, RunProgram, SetEnvironment, Delete, Shortcut, etc.
non-multiple parameters are any which should only be used once in any section, for example, Title, InstallPath, GUIMode, GUIFlags, FinishMessage, etc.

Code: Select all

[color=yellow]; Main section, (to be loaded into the working configuration regardless of user platform or language)[/color]
[color=cyan];!@Install@!UTF-8![/color]
[color=yellow]; [1] Declare multiple parameters which are not dependent on platform or language[/color]
SetEnvironment="Name=Universal Extractor"
SetEnvironment="Vers= v1.6.1.43"
SetEnvironment="PathInst=%ProgramFiles%\\%Name%"
[color=yellow]; [2] Declare a variable which is dependent on platform or language, in this case to be used if no matching language section is found later.  If a matching language section is found, this type of variable can be REPLACED in the language section.[/color]
SetEnvironment="NameInf=UExtr_en.inf"
[color=yellow]; [3] Declare non-multiple parameters that are not dependent on platform or language[/color]
InstallPath="%PathInst%"
BeginPromptTimeout="20"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
[color=yellow]; [4] Declare non-multiple parameters dependent on platform or language.  Again, if no matching language section is found later these will be used.  If a matching platform or language section is later found, these parameters can be REPLACED in the platform or language section found.[/color]
Title="%Name% Setup"
BeginPrompt="Installing %Name%%Vers%"
FinishMessage="%Name%%Vers% Installed!"
ExtractTitle="Extracting files ..."
ExtractDialogText="Please wait ..."
HelpText="Switches for 'silent' install:

> %%M -y -gm2 -fm0

See details on a site: http://7zsfx.info/"
[color=yellow]; [5] Multiple parameters dependent on platform or language.  Multiple parameters (here 'RunProgram') can be ADDED TO or CLEARED later in a platform or language section.[/color]
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
[color=yellow]; [6] Multiple parameters not dependent on platform or language.  That is, to be executed regardless of platform or language of the user's system.  Therefore, these will not be REPLACED later in a platform or language section.[/color]
Delete="%%T\\UExtr_en.inf"
Delete="%%T\\UExtr_ru.inf"
[color=cyan];!@InstallEnd@![/color]
; =======================================================================
[color=yellow]; Language section (Russian)  This section is used, if the sfx is run on a matching language system or if the sfx is run with the command-line switch:  sfxlang:1049[/color]
[color=cyan];!@Install@!UTF-8:Language:1049![/color]
[color=yellow]; [7] Declare an environment variable dependent on the system language. Because this same variable was previously declared in the main section, it will be REPLACED with this string.[/color]
SetEnvironment="NameInf=UExtr_ru.inf"
[color=yellow]; [8] Non-multiple parameters dependent on the system language. These parameters will REPLACE those previously loaded by the main section, because each one is used only once in the main section.[/color]
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
FinishMessage="%Name%%Vers% установлен!"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
HelpText="Ключи для 'тихой' установки:

> %%M -y -gm2 -fm0

Подробнее на сайте: http://7zsfx.info/"
[color=yellow]; [9] Multiple parameters dependent on the language of the system.  The first parameter, [b]RunProgram=-[/b], CLEARS all the RunProgram parameters loaded by the main configuration. This is necessary because RunProgram is used multiple times.  In the case of multiple parameters in the main section, parameters (non-multiple or multiple) in a matching platform or language section will be ADDED to (not replace) those loaded by the main section.[/color]
RunProgram=-
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="hidcon:cmd /c Echo language=Russian>>UniExtract.ini"
[color=cyan];!@InstallEnd@:Language:1049![/color]

When a 7zSFX using the modified module is run, initially the configuration file is parsed for syntax errors and if an error is found, everything stops and an error window will be shown. If no syntax errors, a "working configuration" is created from the configuration file. Although the configuration file can be written with the main section, language sections, and platform sections being in any order, creation of the working configuration is loaded in a specific order:

First, the Main Section is located and loaded to the working configuration.
Second, Platform Sections are located and loaded to the working configuration if it matches the target system's platform architecture.
Third, Language Sections are located and loaded to the working configuration if the target system's UI language matches or if the 7zSFX is run with the command-line switch: -sfxlang:nnnn
Fourth, Platform-Language Sections are located and loaded to the working configuration if both the target's system's architecture and language match.

EDIT: (I forgot something)
If a parameter is used once (non-multiple) in several different matching sections, then the version of that line in the last loaded section REPLACES the previous ones and is used in the working configuration. So suppose Title="PROGRAM NAME ..." (having different content in each section) is written in the main section, a matching platform section, and a matching language section. The line in the language section will be used in the working configuration because it is the last loaded to the working configuration and replaces the previous ones.

ONLY the Main Section is loaded to the working configuration if no MATCHING platform, language, or platform-language section is found (and the switch -sfxlang:nnnn is not used.)
Last edited by shiner on Sat May 19, 2012 5:16 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Thu Apr 19, 2012 2:48 am

2 shiner

Good job!

There are some inaccuracies, but my poor English does not allow me to explain the difference between "single parameters" and "not multiple parameters"

Would you like to take up the translation help file completely?

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Thu Apr 19, 2012 7:57 am

gora wrote:2 shiner

Good job!
Thanks gora.
There are some inaccuracies, but my poor English does not allow me to explain the difference between "single parameters" and "not multiple parameters"
Yes, I had trouble with that when I was composing the post. So, you think "non-multiple'" should replace "single" in that post? That would be more accurate?

EDIT: OK, I replaced "single" with "non-multiple" in the previous post.
Would you like to take up the translation help file completely?
Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Thu Apr 19, 2012 12:11 pm

shiner wrote:If an option, parameter, or command
What are the options and commands? In Russian help used the term parameter.

Code: Select all

Parameter_name="Parameter_Value"
The term "command" is used to determine the parameters of a particular type: 'AutoInstall', 'AutoInstallX', 'RunProgram' & 'ExecuteFile'. In the description section the term command is not used
shiner wrote:Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.
This is a great pity :(
Russian users do not need English help. English help to make the users who need it - English users.
If I need Russian help for 7-zip, then I translate it, although I do not know English.

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Thu Apr 19, 2012 6:29 pm

gora wrote:
shiner wrote:If an option, parameter, or command
What are the options and commands? In Russian help used the term parameter.

Code: Select all

Parameter_name="Parameter_Value"
The term "command" is used to determine the parameters of a particular type: 'AutoInstall', 'AutoInstallX', 'RunProgram' & 'ExecuteFile'. In the description section the term command is not used
Yes, it seems there is confusion between us about the word "parameter."
I am not a professional programmer, but I am referring to lines like:

RunProgram=""
AutoIntall=""
Delete=""


as "commands." I could be wrong.
Also, I would call a line like:

GuiFlags=""

an option, but I guess some people might consider that a command as well.

So, it seems to me that your usage of the word "parameter" means ANY line in a configuration file that is not a Heading or Comment. I don't think that is how most people use the word "parameter" in English. (Someone please correct me if I am wrong on that.)
Which is why I added the words "options' and "commands" in my translation.
shiner wrote:Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.
This is a great pity :(
Russian users do not need English help. English help to make the users who need it - English users.
If I need Russian help for 7-zip, then I translate it, although I do not know English.
I may still attempt rewriting the entire manual.
I don't think your comparison is a fair one though.
gora, I think it is clear that, at the very least, you CAN read some English and understand what has been written. (Or are you using on online translator to read posts in this forum as I do to read posts at OSZone?)
For myself, I cannot read a word of Russian.

Anyway, I value your input because you are quite knowledgeable about the modified module and your English posts are definitely readable.
"You can lead a horse to water, but you can't make it drink."

User avatar
bphlpt
Posts: 1372
Joined: Sat Apr 19, 2008 1:11 am

Post by bphlpt » Fri Apr 20, 2012 4:11 am

Quoting from http://en.wikipedia.org/wiki/Parameter_ ... ogramming):
Parameters are a special kind of variables, used in a subroutine to refer to one/more of the pieces of data provided as input to the subroutine

An argument is usually defined as the actual value passed to a function, procedure, or command line program.
For 'GUIFlags="2+4+8+16+32+2048+4096"', GUIFlags is the name of the varable or parameter and "2+4+8+16+32+2048+4096" is the value or argument. Since there can be both optional parameters and required parameters, I would agree with gora that you should drop the use of "option" and just use parameter.

But, and I'm not an expert computer programmer either especiaqlly regarding configuration files, I can understand considering 'RunProgram=""', 'AutoIntall=""', and 'Delete=""' as commands. Quoting from http://en.wikipedia.org/wiki/Command_(computing):
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task.
Using this as an example:
RunProgram=-
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="hidcon:cmd /c Echo language=Russian>>UniExtract.ini"
that seems to me to be executing four different commands, rather than assigning four different values to the variable "RunProgram". And for:
SetEnvironment="Name=Universal Extractor"
SetEnvironment="Vers= v1.6.1.43"
SetEnvironment="PathInst=%ProgramFiles%\\%Name%"
I would consider "SetEnvironment" as a command, and "Name", "Vers", and "PathInst" as variables or paramaters.

But for all the above, configuration files might have their own common terminology that I am not familiar with so I could be wrong.

Regarding an earlier discussion, I'm afraid my English skills do not allow me to understand the difference between "single parameters" and "not multiple parameters". If it is not multiple, doesn't that imply single? Is the confusion due to the possibility of "none"? I'm confused.

And yes, from my working with gora in the past, I believe he does use an online translator to read and write posts in the forum, and he does do a very excellent job at it, though it is difficult for him.

Cheers and Regards

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Fri Apr 20, 2012 4:33 am

2 shiner
OK
Questions of the terms cause a lot of discussion here.
If you're not going to do English help file, then use any terminology that you useful and understandable.

Я умываю руки! :)

User avatar
bphlpt
Posts: 1372
Joined: Sat Apr 19, 2008 1:11 am

Post by bphlpt » Fri Apr 20, 2012 6:00 am

2 gora

I don't think there was any disrespect meant by either shiner's comments or mine. And no matter whether shiner plans to do a complete English help file (which would be awesome!) or not, we really would like to understand the correct way to use all the various features available in 7-Zip in general and the modified 7zSFX module in particular. Please have patience with us as we try to understand the technical details and then try to translate the descriptions into terms that are more familiar to us. If we misunderstand anything I hope you will continue to correct us and not just "Я умываю руки!". Perhaps you could recommend someone who you feel could do a good job of helping us with the translation, or a program that you feel does a more accurate translation?

Cheers and Regards

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Fri Apr 20, 2012 6:05 am

gora wrote:2 shiner
Questions of the terms cause a lot of discussion here.
That I think is very normal in translation. :wink:

Well, I am much less experienced and knowledgeable than both gora and bphlpt when it comes to writing batch scripts, so I have changed the above post to use only "parameter" instead of "options," "commands," and "parameters."

After reading it again, it does seem a bit more consistent that way.

gora and bphlpt, thanks again for reviewing what I wrote and making suggestions. Your words of advice will always be welcome.

gora, I know you keep very busy so I am most impressed that you are posting here, if you cannot read English. I think that is incredible.
"You can lead a horse to water, but you can't make it drink."

User avatar
5eraph
Site Admin
Posts: 4619
Joined: Tue Jul 05, 2005 9:38 pm
Location: Riverview, MI USA

Post by 5eraph » Fri Apr 20, 2012 8:25 am

bphlpt wrote:The board software does not handle this link correctly - the link is everything within ""
Parentheses in links cause problems. Fixed that for you. :)

User avatar
bphlpt
Posts: 1372
Joined: Sat Apr 19, 2008 1:11 am

Post by bphlpt » Fri Apr 20, 2012 8:33 am

Thanks 5eraph. I forgot about %28 and %29. LOL Sometimes I still feel like such a noob.

Cheers and Regards

User avatar
OnePiece Alb
Posts: 525
Joined: Sat Sep 01, 2007 7:01 pm
Location: Albania
Contact:

Post by OnePiece Alb » Wed Apr 25, 2012 12:18 pm

shiner wrote: Someone please be kind enough to post a list of the destinations for the above variables on Win7.
are the same?


http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Code: Select all

/*===========================================================================

Copyright (c) Microsoft Corporation. All rights reserved.

File: shlobj.h

===========================================================================*/


#if (NTDDI_VERSION >= NTDDI_WINXP)

SHSTDAPI SHOpenFolderAndSelectItems(_In_ PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, _In_reads_opt_(cidl) PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags);

//  deprecated because of parameter ambiguity
//  call SHCreateItemWithParent() or SHCreateItemFromIDList() instead
SHSTDAPI SHCreateShellItem(_In_opt_ PCIDLIST_ABSOLUTE pidlParent, _In_opt_ IShellFolder *psfParent, _In_ PCUITEMID_CHILD pidl, _Outptr_ IShellItem **ppsi);

#endif

//
// SHGetSpecialFolderLocation
//
//  Caller should use SHGetMalloc to obtain an allocator that can free the pidl
//
// registry entries for special paths are kept in :
#define REGSTR_PATH_SPECIAL_FOLDERS     REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")


#define CSIDL_DESKTOP                   0x0000        // <desktop>
#define CSIDL_INTERNET                  0x0001        // Internet Explorer (icon on desktop)
#define CSIDL_PROGRAMS                  0x0002        // Start Menu\Programs
#define CSIDL_CONTROLS                  0x0003        // My Computer\Control Panel
#define CSIDL_PRINTERS                  0x0004        // My Computer\Printers
#define CSIDL_PERSONAL                  0x0005        // My Documents
#define CSIDL_FAVORITES                 0x0006        // <user name>\Favorites
#define CSIDL_STARTUP                   0x0007        // Start Menu\Programs\Startup
#define CSIDL_RECENT                    0x0008        // <user name>\Recent
#define CSIDL_SENDTO                    0x0009        // <user name>\SendTo
#define CSIDL_BITBUCKET                 0x000a        // <desktop>\Recycle Bin
#define CSIDL_STARTMENU                 0x000b        // <user name>\Start Menu
#define CSIDL_MYDOCUMENTS               CSIDL_PERSONAL //  Personal was just a silly name for My Documents
#define CSIDL_MYMUSIC                   0x000d        // "My Music" folder
#define CSIDL_MYVIDEO                   0x000e        // "My Videos" folder
#define CSIDL_DESKTOPDIRECTORY          0x0010        // <user name>\Desktop
#define CSIDL_DRIVES                    0x0011        // My Computer
#define CSIDL_NETWORK                   0x0012        // Network Neighborhood (My Network Places)
#define CSIDL_NETHOOD                   0x0013        // <user name>\nethood
#define CSIDL_FONTS                     0x0014        // windows\fonts
#define CSIDL_TEMPLATES                 0x0015
#define CSIDL_COMMON_STARTMENU          0x0016        // All Users\Start Menu
#define CSIDL_COMMON_PROGRAMS           0X0017        // All Users\Start Menu\Programs
#define CSIDL_COMMON_STARTUP            0x0018        // All Users\Startup
#define CSIDL_COMMON_DESKTOPDIRECTORY   0x0019        // All Users\Desktop
#define CSIDL_APPDATA                   0x001a        // <user name>\Application Data
#define CSIDL_PRINTHOOD                 0x001b        // <user name>\PrintHood

#ifndef CSIDL_LOCAL_APPDATA
#define CSIDL_LOCAL_APPDATA             0x001c        // <user name>\Local Settings\Applicaiton Data (non roaming)
#endif // CSIDL_LOCAL_APPDATA

#define CSIDL_ALTSTARTUP                0x001d        // non localized startup
#define CSIDL_COMMON_ALTSTARTUP         0x001e        // non localized common startup
#define CSIDL_COMMON_FAVORITES          0x001f

#ifndef _SHFOLDER_H_
#define CSIDL_INTERNET_CACHE            0x0020
#define CSIDL_COOKIES                   0x0021
#define CSIDL_HISTORY                   0x0022
#define CSIDL_COMMON_APPDATA            0x0023        // All Users\Application Data
#define CSIDL_WINDOWS                   0x0024        // GetWindowsDirectory()
#define CSIDL_SYSTEM                    0x0025        // GetSystemDirectory()
#define CSIDL_PROGRAM_FILES             0x0026        // C:\Program Files
#define CSIDL_MYPICTURES                0x0027        // C:\Program Files\My Pictures
#endif // _SHFOLDER_H_

#define CSIDL_PROFILE                   0x0028        // USERPROFILE
#define CSIDL_SYSTEMX86                 0x0029        // x86 system directory on RISC
#define CSIDL_PROGRAM_FILESX86          0x002a        // x86 C:\Program Files on RISC

#ifndef _SHFOLDER_H_
#define CSIDL_PROGRAM_FILES_COMMON      0x002b        // C:\Program Files\Common
#endif // _SHFOLDER_H_

#define CSIDL_PROGRAM_FILES_COMMONX86   0x002c        // x86 Program Files\Common on RISC
#define CSIDL_COMMON_TEMPLATES          0x002d        // All Users\Templates

#ifndef _SHFOLDER_H_
#define CSIDL_COMMON_DOCUMENTS          0x002e        // All Users\Documents
#define CSIDL_COMMON_ADMINTOOLS         0x002f        // All Users\Start Menu\Programs\Administrative Tools
#define CSIDL_ADMINTOOLS                0x0030        // <user name>\Start Menu\Programs\Administrative Tools
#endif // _SHFOLDER_H_

#define CSIDL_CONNECTIONS               0x0031        // Network and Dial-up Connections
#define CSIDL_COMMON_MUSIC              0x0035        // All Users\My Music
#define CSIDL_COMMON_PICTURES           0x0036        // All Users\My Pictures
#define CSIDL_COMMON_VIDEO              0x0037        // All Users\My Video
#define CSIDL_RESOURCES                 0x0038        // Resource Direcotry

#ifndef _SHFOLDER_H_
#define CSIDL_RESOURCES_LOCALIZED       0x0039        // Localized Resource Direcotry
#endif // _SHFOLDER_H_

#define CSIDL_COMMON_OEM_LINKS          0x003a        // Links to All Users OEM specific apps
#define CSIDL_CDBURN_AREA               0x003b        // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
// unused                               0x003c
#define CSIDL_COMPUTERSNEARME           0x003d        // Computers Near Me (computered from Workgroup membership)

#ifndef _SHFOLDER_H_
#define CSIDL_FLAG_CREATE               0x8000        // combine with CSIDL_ value to force folder creation in SHGetFolderPath()
#endif // _SHFOLDER_H_

typedef enum {
    SHGFP_TYPE_CURRENT  = 0,   // current value for user, verify it exists
    SHGFP_TYPE_DEFAULT  = 1,   // default value, may not exist
} SHGFP_TYPE;


/*++

Copyright (c) Microsoft Corporation.  All rights reserved.

Module Name:

    setupapi.h
--*/
//
// Target directory specs.
//
#define DIRID_ABSOLUTE          -1              // real 32-bit -1
#define DIRID_ABSOLUTE_16BIT     0xffff         // 16-bit -1 for compat w/setupx
#define DIRID_NULL               0
#define DIRID_SRCPATH            1
#define DIRID_WINDOWS           10
#define DIRID_SYSTEM            11              // system32
#define DIRID_DRIVERS           12
#define DIRID_IOSUBSYS          DIRID_DRIVERS
#define DIRID_INF               17
#define DIRID_HELP              18
#define DIRID_FONTS             20
#define DIRID_VIEWERS           21
#define DIRID_COLOR             23
#define DIRID_APPS              24
#define DIRID_SHARED            25
#define DIRID_BOOT              30

#define DIRID_SYSTEM16          50
#define DIRID_SPOOL             51
#define DIRID_SPOOLDRIVERS      52
#define DIRID_USERPROFILE       53
#define DIRID_LOADER            54
#define DIRID_PRINTPROCESSOR    55

#define DIRID_DEFAULT           DIRID_SYSTEM

//
// The following DIRIDs are for commonly-used shell "special folders".  The
// complete list of such folders is contained in shlobj.h.  In that headerfile,
// each folder is assigned a CSIDL_* value.  The DIRID values below are created
// by taking the CSIDL value in shlobj.h and OR'ing it with 0x4000.  Thus, if
// an INF needs to reference other special folders not defined below, it may
// generate one using the above mechanism, and setupapi will automatically deal
// with it and use the corresponding shell's path where appropriate.  (Remember
// that DIRIDs must be specified in decimal, not hex, in an INF when used for
// string substitution.)
//
#define DIRID_COMMON_STARTMENU        16406  // All Users\Start Menu
#define DIRID_COMMON_PROGRAMS         16407  // All Users\Start Menu\Programs
#define DIRID_COMMON_STARTUP          16408  // All Users\Start Menu\Programs\Startup
#define DIRID_COMMON_DESKTOPDIRECTORY 16409  // All Users\Desktop
#define DIRID_COMMON_FAVORITES        16415  // All Users\Favorites
#define DIRID_COMMON_APPDATA          16419  // All Users\Application Data

#define DIRID_PROGRAM_FILES           16422  // Program Files
#define DIRID_SYSTEM_X86              16425  // system32 for WOW
#define DIRID_PROGRAM_FILES_X86       16426  // Program Files for WOW
#define DIRID_PROGRAM_FILES_COMMON    16427  // Program Files\Common
#define DIRID_PROGRAM_FILES_COMMONX86 16428  // x86 Program Files\Common for WOW

#define DIRID_COMMON_TEMPLATES        16429  // All Users\Templates
#define DIRID_COMMON_DOCUMENTS        16430  // All Users\Documents




for special directory in Windows NT6.x Vista/Seven/8/Next http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Code: Select all


#pragma once
#include <winapifamily.h>

#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)


#ifdef DEFINE_KNOWN_FOLDER
#undef DEFINE_KNOWN_FOLDER
#endif


#ifdef INITGUID
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
        EXTERN_C const GUID DECLSPEC_SELECTANY name \
                = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
#else
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
        EXTERN_C const GUID name
#endif // INITGUID

// legacy CSIDL value: CSIDL_NETWORK
// display name: "Network"
// legacy display name: "My Network Places"
// default path: 
// {D20BEEC4-5CA8-4905-AE3B-BF251EA09B53}
DEFINE_KNOWN_FOLDER(FOLDERID_NetworkFolder, 0xD20BEEC4, 0x5CA8, 0x4905, 0xAE, 0x3B, 0xBF, 0x25, 0x1E, 0xA0, 0x9B, 0x53);

// {0AC0837C-BBF8-452A-850D-79D08E667CA7}
DEFINE_KNOWN_FOLDER(FOLDERID_ComputerFolder,   0x0AC0837C, 0xBBF8, 0x452A, 0x85, 0x0D, 0x79, 0xD0, 0x8E, 0x66, 0x7C, 0xA7);

// {4D9F7874-4E0C-4904-967B-40B0D20C3E4B}
DEFINE_KNOWN_FOLDER(FOLDERID_InternetFolder,      0x4D9F7874, 0x4E0C, 0x4904, 0x96, 0x7B, 0x40, 0xB0, 0xD2, 0x0C, 0x3E, 0x4B);

// {82A74AEB-AEB4-465C-A014-D097EE346D63}
DEFINE_KNOWN_FOLDER(FOLDERID_ControlPanelFolder,  0x82A74AEB, 0xAEB4, 0x465C, 0xA0, 0x14, 0xD0, 0x97, 0xEE, 0x34, 0x6D, 0x63);

// {76FC4E2D-D6AD-4519-A663-37BD56068185}
DEFINE_KNOWN_FOLDER(FOLDERID_PrintersFolder,      0x76FC4E2D, 0xD6AD, 0x4519, 0xA6, 0x63, 0x37, 0xBD, 0x56, 0x06, 0x81, 0x85);

// {43668BF8-C14E-49B2-97C9-747784D784B7}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncManagerFolder,       0x43668BF8, 0xC14E, 0x49B2, 0x97, 0xC9, 0x74, 0x77, 0x84, 0xD7, 0x84, 0xB7);

// {0F214138-B1D3-4a90-BBA9-27CBC0C5389A}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncSetupFolder, 0xf214138, 0xb1d3, 0x4a90, 0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a);

// {4bfefb45-347d-4006-a5be-ac0cb0567192}
DEFINE_KNOWN_FOLDER(FOLDERID_ConflictFolder,      0x4bfefb45, 0x347d, 0x4006, 0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92);

// {289a9a43-be44-4057-a41b-587a76d7e7f9}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncResultsFolder,     0x289a9a43, 0xbe44, 0x4057, 0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9);

// {B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC}
DEFINE_KNOWN_FOLDER(FOLDERID_RecycleBinFolder,    0xB7534046, 0x3ECB, 0x4C18, 0xBE, 0x4E, 0x64, 0xCD, 0x4C, 0xB7, 0xD6, 0xAC);

// {6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD}
DEFINE_KNOWN_FOLDER(FOLDERID_ConnectionsFolder,   0x6F0CD92B, 0x2E97, 0x45D1, 0x88, 0xFF, 0xB0, 0xD1, 0x86, 0xB8, 0xDE, 0xDD);

// {FD228CB7-AE11-4AE3-864C-16F3910AB8FE}
DEFINE_KNOWN_FOLDER(FOLDERID_Fonts,               0xFD228CB7, 0xAE11, 0x4AE3, 0x86, 0x4C, 0x16, 0xF3, 0x91, 0x0A, 0xB8, 0xFE);

// display name:        "Desktop"
// default path:        "C:\Users\<UserName>\Desktop"
// legacy default path: "C:\Documents and Settings\<userName>\Desktop"
// legacy CSIDL value:  CSIDL_DESKTOP
// {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
DEFINE_KNOWN_FOLDER(FOLDERID_Desktop,             0xB4BFCC3A, 0xDB2C, 0x424C, 0xB0, 0x29, 0x7F, 0xE9, 0x9A, 0x87, 0xC6, 0x41);

// {B97D20BB-F46A-4C97-BA10-5E3608430854}
DEFINE_KNOWN_FOLDER(FOLDERID_Startup,             0xB97D20BB, 0xF46A, 0x4C97, 0xBA, 0x10, 0x5E, 0x36, 0x08, 0x43, 0x08, 0x54);

// {A77F5D77-2E2B-44C3-A6A2-ABA601054A51}
DEFINE_KNOWN_FOLDER(FOLDERID_Programs,            0xA77F5D77, 0x2E2B, 0x44C3, 0xA6, 0xA2, 0xAB, 0xA6, 0x01, 0x05, 0x4A, 0x51);

// {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}
DEFINE_KNOWN_FOLDER(FOLDERID_StartMenu,           0x625B53C3, 0xAB48, 0x4EC1, 0xBA, 0x1F, 0xA1, 0xEF, 0x41, 0x46, 0xFC, 0x19);

// {AE50C081-EBD2-438A-8655-8A092E34987A}
DEFINE_KNOWN_FOLDER(FOLDERID_Recent,              0xAE50C081, 0xEBD2, 0x438A, 0x86, 0x55, 0x8A, 0x09, 0x2E, 0x34, 0x98, 0x7A);

// {8983036C-27C0-404B-8F08-102D10DCFD74}
DEFINE_KNOWN_FOLDER(FOLDERID_SendTo,              0x8983036C, 0x27C0, 0x404B, 0x8F, 0x08, 0x10, 0x2D, 0x10, 0xDC, 0xFD, 0x74);

// {FDD39AD0-238F-46AF-ADB4-6C85480369C7}
DEFINE_KNOWN_FOLDER(FOLDERID_Documents,           0xFDD39AD0, 0x238F, 0x46AF, 0xAD, 0xB4, 0x6C, 0x85, 0x48, 0x03, 0x69, 0xC7);

// {1777F761-68AD-4D8A-87BD-30B759FA33DD}
DEFINE_KNOWN_FOLDER(FOLDERID_Favorites,           0x1777F761, 0x68AD, 0x4D8A, 0x87, 0xBD, 0x30, 0xB7, 0x59, 0xFA, 0x33, 0xDD);

// {C5ABBF53-E17F-4121-8900-86626FC2C973}
DEFINE_KNOWN_FOLDER(FOLDERID_NetHood,             0xC5ABBF53, 0xE17F, 0x4121, 0x89, 0x00, 0x86, 0x62, 0x6F, 0xC2, 0xC9, 0x73);

// {9274BD8D-CFD1-41C3-B35E-B13F55A758F4}
DEFINE_KNOWN_FOLDER(FOLDERID_PrintHood,           0x9274BD8D, 0xCFD1, 0x41C3, 0xB3, 0x5E, 0xB1, 0x3F, 0x55, 0xA7, 0x58, 0xF4);

// {A63293E8-664E-48DB-A079-DF759E0509F7}
DEFINE_KNOWN_FOLDER(FOLDERID_Templates,           0xA63293E8, 0x664E, 0x48DB, 0xA0, 0x79, 0xDF, 0x75, 0x9E, 0x05, 0x09, 0xF7);

// {82A5EA35-D9CD-47C5-9629-E15D2F714E6E}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonStartup,       0x82A5EA35, 0xD9CD, 0x47C5, 0x96, 0x29, 0xE1, 0x5D, 0x2F, 0x71, 0x4E, 0x6E);

// {0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonPrograms,      0x0139D44E, 0x6AFE, 0x49F2, 0x86, 0x90, 0x3D, 0xAF, 0xCA, 0xE6, 0xFF, 0xB8);

// {A4115719-D62E-491D-AA7C-E74B8BE3B067}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonStartMenu,     0xA4115719, 0xD62E, 0x491D, 0xAA, 0x7C, 0xE7, 0x4B, 0x8B, 0xE3, 0xB0, 0x67);

// {C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDesktop,       0xC4AA340D, 0xF20F, 0x4863, 0xAF, 0xEF, 0xF8, 0x7E, 0xF2, 0xE6, 0xBA, 0x25);

// {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramData,         0x62AB5D82, 0xFDC1, 0x4DC3, 0xA9, 0xDD, 0x07, 0x0D, 0x1D, 0x49, 0x5D, 0x97);

// {B94237E7-57AC-4347-9151-B08C6C32D1F7}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonTemplates,     0xB94237E7, 0x57AC, 0x4347, 0x91, 0x51, 0xB0, 0x8C, 0x6C, 0x32, 0xD1, 0xF7);

// {ED4824AF-DCE4-45A8-81E2-FC7965083634}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDocuments,     0xED4824AF, 0xDCE4, 0x45A8, 0x81, 0xE2, 0xFC, 0x79, 0x65, 0x08, 0x36, 0x34);

// {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamingAppData,      0x3EB685DB, 0x65F9, 0x4CF6, 0xA0, 0x3A, 0xE3, 0xEF, 0x65, 0x72, 0x9F, 0x3D);

// {F1B32785-6FBA-4FCF-9D55-7B8E7F157091}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalAppData,        0xF1B32785, 0x6FBA, 0x4FCF, 0x9D, 0x55, 0x7B, 0x8E, 0x7F, 0x15, 0x70, 0x91);

// {A520A1A4-1780-4FF6-BD18-167343C5AF16}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalAppDataLow,     0xA520A1A4, 0x1780, 0x4FF6, 0xBD, 0x18, 0x16, 0x73, 0x43, 0xC5, 0xAF, 0x16);

// {352481E8-33BE-4251-BA85-6007CAEDCF9D}
DEFINE_KNOWN_FOLDER(FOLDERID_InternetCache,       0x352481E8, 0x33BE, 0x4251, 0xBA, 0x85, 0x60, 0x07, 0xCA, 0xED, 0xCF, 0x9D);

// {2B0F765D-C0E9-4171-908E-08A611B84FF6}
DEFINE_KNOWN_FOLDER(FOLDERID_Cookies,             0x2B0F765D, 0xC0E9, 0x4171, 0x90, 0x8E, 0x08, 0xA6, 0x11, 0xB8, 0x4F, 0xF6);

// {D9DC8A3B-B784-432E-A781-5A1130A75963}
DEFINE_KNOWN_FOLDER(FOLDERID_History,             0xD9DC8A3B, 0xB784, 0x432E, 0xA7, 0x81, 0x5A, 0x11, 0x30, 0xA7, 0x59, 0x63);

// {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}
DEFINE_KNOWN_FOLDER(FOLDERID_System,              0x1AC14E77, 0x02E7, 0x4E5D, 0xB7, 0x44, 0x2E, 0xB1, 0xAE, 0x51, 0x98, 0xB7);

// {D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}
DEFINE_KNOWN_FOLDER(FOLDERID_SystemX86,           0xD65231B0, 0xB2F1, 0x4857, 0xA4, 0xCE, 0xA8, 0xE7, 0xC6, 0xEA, 0x7D, 0x27);

// {F38BF404-1D43-42F2-9305-67DE0B28FC23}
DEFINE_KNOWN_FOLDER(FOLDERID_Windows,             0xF38BF404, 0x1D43, 0x42F2, 0x93, 0x05, 0x67, 0xDE, 0x0B, 0x28, 0xFC, 0x23);

// {5E6C858F-0E22-4760-9AFE-EA3317B67173}
DEFINE_KNOWN_FOLDER(FOLDERID_Profile,             0x5E6C858F, 0x0E22, 0x4760, 0x9A, 0xFE, 0xEA, 0x33, 0x17, 0xB6, 0x71, 0x73);

// {33E28130-4E1E-4676-835A-98395C3BC3BB}
DEFINE_KNOWN_FOLDER(FOLDERID_Pictures,            0x33E28130, 0x4E1E, 0x4676, 0x83, 0x5A, 0x98, 0x39, 0x5C, 0x3B, 0xC3, 0xBB);

// {7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesX86,     0x7C5A40EF, 0xA0FB, 0x4BFC, 0x87, 0x4A, 0xC0, 0xF2, 0xE0, 0xB9, 0xFA, 0x8E);

// {DE974D24-D9C6-4D3E-BF91-F4455120B917}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX86, 0xDE974D24, 0xD9C6, 0x4D3E, 0xBF, 0x91, 0xF4, 0x45, 0x51, 0x20, 0xB9, 0x17);

// {6D809377-6AF0-444b-8957-A3773F02200E}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesX64,     0x6d809377, 0x6af0, 0x444b, 0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e );

// {6365D5A7-0F0D-45e5-87F6-0DA56B6A4F7D}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX64, 0x6365d5a7, 0xf0d, 0x45e5, 0x87, 0xf6, 0xd, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d );

// {905e63b6-c1bf-494e-b29c-65b732d3d21a}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFiles,        0x905e63b6, 0xc1bf, 0x494e, 0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a);

// {F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommon,  0xF7F1ED05, 0x9F6D, 0x47A2, 0xAA, 0xAE, 0x29, 0xD3, 0x17, 0xC6, 0xF0, 0x66);

// {5cd7aee2-2219-4a67-b85d-6c9ce15660cb}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProgramFiles,    0x5cd7aee2, 0x2219, 0x4a67, 0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb);

// {bcbd3057-ca5c-4622-b42d-bc56db0ae516}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProgramFilesCommon, 0xbcbd3057, 0xca5c, 0x4622, 0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16);

// {724EF170-A42D-4FEF-9F26-B60E846FBA4F}
DEFINE_KNOWN_FOLDER(FOLDERID_AdminTools,          0x724EF170, 0xA42D, 0x4FEF, 0x9F, 0x26, 0xB6, 0x0E, 0x84, 0x6F, 0xBA, 0x4F);

// {D0384E7D-BAC3-4797-8F14-CBA229B392B5}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonAdminTools,    0xD0384E7D, 0xBAC3, 0x4797, 0x8F, 0x14, 0xCB, 0xA2, 0x29, 0xB3, 0x92, 0xB5);

// {4BD8D571-6D19-48D3-BE97-422220080E43}
DEFINE_KNOWN_FOLDER(FOLDERID_Music,               0x4BD8D571, 0x6D19, 0x48D3, 0xBE, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0E, 0x43);

// {18989B1D-99B5-455B-841C-AB7C74E4DDFC}
DEFINE_KNOWN_FOLDER(FOLDERID_Videos,              0x18989B1D, 0x99B5, 0x455B, 0x84, 0x1C, 0xAB, 0x7C, 0x74, 0xE4, 0xDD, 0xFC);

// {C870044B-F49E-4126-A9C3-B52A1FF411E8}
DEFINE_KNOWN_FOLDER(FOLDERID_Ringtones,           0xC870044B, 0xF49E, 0x4126, 0xA9, 0xC3, 0xB5, 0x2A, 0x1F, 0xF4, 0x11, 0xE8);

// {B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicPictures,      0xB6EBFB86, 0x6907, 0x413C, 0x9A, 0xF7, 0x4F, 0xC2, 0xAB, 0xF0, 0x7C, 0xC5);

// {3214FAB5-9757-4298-BB61-92A9DEAA44FF}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicMusic,         0x3214FAB5, 0x9757, 0x4298, 0xBB, 0x61, 0x92, 0xA9, 0xDE, 0xAA, 0x44, 0xFF);

// {2400183A-6185-49FB-A2D8-4A392A602BA3}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicVideos,        0x2400183A, 0x6185, 0x49FB, 0xA2, 0xD8, 0x4A, 0x39, 0x2A, 0x60, 0x2B, 0xA3);

// {E555AB60-153B-4D17-9F04-A5FE99FC15EC}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicRingtones,     0xE555AB60, 0x153B, 0x4D17, 0x9F, 0x04, 0xA5, 0xFE, 0x99, 0xFC, 0x15, 0xEC);

// {8AD10C31-2ADB-4296-A8F7-E4701232C972}
DEFINE_KNOWN_FOLDER(FOLDERID_ResourceDir,         0x8AD10C31, 0x2ADB, 0x4296, 0xA8, 0xF7, 0xE4, 0x70, 0x12, 0x32, 0xC9, 0x72);

// {2A00375E-224C-49DE-B8D1-440DF7EF3DDC}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalizedResourcesDir, 0x2A00375E, 0x224C, 0x49DE, 0xB8, 0xD1, 0x44, 0x0D, 0xF7, 0xEF, 0x3D, 0xDC);

// {C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonOEMLinks,      0xC1BAE2D0, 0x10DF, 0x4334, 0xBE, 0xDD, 0x7A, 0xA2, 0x0B, 0x22, 0x7A, 0x9D);

// {9E52AB10-F80D-49DF-ACB8-4330F5687855}
DEFINE_KNOWN_FOLDER(FOLDERID_CDBurning,           0x9E52AB10, 0xF80D, 0x49DF, 0xAC, 0xB8, 0x43, 0x30, 0xF5, 0x68, 0x78, 0x55);

// {0762D272-C50A-4BB0-A382-697DCD729B80}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProfiles,        0x0762D272, 0xC50A, 0x4BB0, 0xA3, 0x82, 0x69, 0x7D, 0xCD, 0x72, 0x9B, 0x80);

// {DE92C1C7-837F-4F69-A3BB-86E631204A23}
DEFINE_KNOWN_FOLDER(FOLDERID_Playlists,           0xDE92C1C7, 0x837F, 0x4F69, 0xA3, 0xBB, 0x86, 0xE6, 0x31, 0x20, 0x4A, 0x23);

// {15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}
DEFINE_KNOWN_FOLDER(FOLDERID_SamplePlaylists,     0x15CA69B3, 0x30EE, 0x49C1, 0xAC, 0xE1, 0x6B, 0x5E, 0xC3, 0x72, 0xAF, 0xB5);

// {B250C668-F57D-4EE1-A63C-290EE7D1AA1F}
DEFINE_KNOWN_FOLDER(FOLDERID_SampleMusic,         0xB250C668, 0xF57D, 0x4EE1, 0xA6, 0x3C, 0x29, 0x0E, 0xE7, 0xD1, 0xAA, 0x1F);

// {C4900540-2379-4C75-844B-64E6FAF8716B}
DEFINE_KNOWN_FOLDER(FOLDERID_SamplePictures,      0xC4900540, 0x2379, 0x4C75, 0x84, 0x4B, 0x64, 0xE6, 0xFA, 0xF8, 0x71, 0x6B);

// {859EAD94-2E85-48AD-A71A-0969CB56A6CD}
DEFINE_KNOWN_FOLDER(FOLDERID_SampleVideos,        0x859EAD94, 0x2E85, 0x48AD, 0xA7, 0x1A, 0x09, 0x69, 0xCB, 0x56, 0xA6, 0xCD);

// {69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}
DEFINE_KNOWN_FOLDER(FOLDERID_PhotoAlbums,         0x69D2CF90, 0xFC33, 0x4FB7, 0x9A, 0x0C, 0xEB, 0xB0, 0xF0, 0xFC, 0xB4, 0x3C);

// {DFDF76A2-C82A-4D63-906A-5644AC457385}
DEFINE_KNOWN_FOLDER(FOLDERID_Public,              0xDFDF76A2, 0xC82A, 0x4D63, 0x90, 0x6A, 0x56, 0x44, 0xAC, 0x45, 0x73, 0x85);

// {df7266ac-9274-4867-8d55-3bd661de872d}
DEFINE_KNOWN_FOLDER(FOLDERID_ChangeRemovePrograms,0xdf7266ac, 0x9274, 0x4867, 0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d);

// {a305ce99-f527-492b-8b1a-7e76fa98d6e4}
DEFINE_KNOWN_FOLDER(FOLDERID_AppUpdates,          0xa305ce99, 0xf527, 0x492b, 0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4);

// {de61d971-5ebc-4f02-a3a9-6c82895e5c04}
DEFINE_KNOWN_FOLDER(FOLDERID_AddNewPrograms,      0xde61d971, 0x5ebc, 0x4f02, 0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04);

// {374DE290-123F-4565-9164-39C4925E467B}
DEFINE_KNOWN_FOLDER(FOLDERID_Downloads,           0x374de290, 0x123f, 0x4565, 0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b);

// {3D644C9B-1FB8-4f30-9B45-F670235F79C0}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDownloads,     0x3d644c9b, 0x1fb8, 0x4f30, 0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0);

// {7d1d3a04-debb-4115-95cf-2f29da2920da}
DEFINE_KNOWN_FOLDER(FOLDERID_SavedSearches,       0x7d1d3a04, 0xdebb, 0x4115, 0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda);

// {52a4f021-7b75-48a9-9f6b-4b87a210bc8f}
DEFINE_KNOWN_FOLDER(FOLDERID_QuickLaunch,         0x52a4f021, 0x7b75, 0x48a9, 0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f);

// {56784854-C6CB-462b-8169-88E350ACB882}
DEFINE_KNOWN_FOLDER(FOLDERID_Contacts,            0x56784854, 0xc6cb, 0x462b, 0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82);

// {A75D362E-50FC-4fb7-AC2C-A8BEAA314493}
DEFINE_KNOWN_FOLDER(FOLDERID_SidebarParts,        0xa75d362e, 0x50fc, 0x4fb7, 0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93);

// {7B396E54-9EC5-4300-BE0A-2482EBAE1A26}
DEFINE_KNOWN_FOLDER(FOLDERID_SidebarDefaultParts, 0x7b396e54, 0x9ec5, 0x4300, 0xbe, 0xa, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26);

// {DEBF2536-E1A8-4c59-B6A2-414586476AEA}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicGameTasks,     0xdebf2536, 0xe1a8, 0x4c59, 0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea);

// {054FAE61-4DD8-4787-80B6-090220C4B700}
DEFINE_KNOWN_FOLDER(FOLDERID_GameTasks,           0x54fae61, 0x4dd8, 0x4787, 0x80, 0xb6, 0x9, 0x2, 0x20, 0xc4, 0xb7, 0x0);

// {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}
DEFINE_KNOWN_FOLDER(FOLDERID_SavedGames,          0x4c5c32ff, 0xbb9d, 0x43b0, 0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4);

// {CAC52C1A-B53D-4edc-92D7-6B2E8AC19434}
DEFINE_KNOWN_FOLDER(FOLDERID_Games,               0xcac52c1a, 0xb53d, 0x4edc, 0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34);

// {98ec0e18-2098-4d44-8644-66979315a281}
DEFINE_KNOWN_FOLDER(FOLDERID_SEARCH_MAPI,         0x98ec0e18, 0x2098, 0x4d44, 0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81);

// {ee32e446-31ca-4aba-814f-a5ebd2fd6d5e}
DEFINE_KNOWN_FOLDER(FOLDERID_SEARCH_CSC,          0xee32e446, 0x31ca, 0x4aba, 0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e);

// {bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}
DEFINE_KNOWN_FOLDER(FOLDERID_Links,               0xbfb9d5e0, 0xc6a9, 0x404c, 0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68);

// {f3ce0f7c-4901-4acc-8648-d5d44b04ef8f}
DEFINE_KNOWN_FOLDER(FOLDERID_UsersFiles,          0xf3ce0f7c, 0x4901, 0x4acc, 0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f);

// {A302545D-DEFF-464b-ABE8-61C8648D939B}
DEFINE_KNOWN_FOLDER(FOLDERID_UsersLibraries,      0xa302545d, 0xdeff, 0x464b, 0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b);

// {190337d1-b8ca-4121-a639-6d472d16972a}
DEFINE_KNOWN_FOLDER(FOLDERID_SearchHome,          0x190337d1, 0xb8ca, 0x4121, 0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a);

// {2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}
DEFINE_KNOWN_FOLDER(FOLDERID_OriginalImages,      0x2C36C0AA, 0x5812, 0x4b87, 0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39);

// {7b0db17d-9cd2-4a93-9733-46cc89022e7c}
DEFINE_KNOWN_FOLDER(FOLDERID_DocumentsLibrary,    0x7b0db17d, 0x9cd2, 0x4a93, 0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c);

// {2112AB0A-C86A-4ffe-A368-0DE96E47012E}
DEFINE_KNOWN_FOLDER(FOLDERID_MusicLibrary,        0x2112ab0a, 0xc86a, 0x4ffe, 0xa3, 0x68, 0xd, 0xe9, 0x6e, 0x47, 0x1, 0x2e);

// {A990AE9F-A03B-4e80-94BC-9912D7504104}
DEFINE_KNOWN_FOLDER(FOLDERID_PicturesLibrary,     0xa990ae9f, 0xa03b, 0x4e80, 0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x4);

// {491E922F-5643-4af4-A7EB-4E7A138D8174}
DEFINE_KNOWN_FOLDER(FOLDERID_VideosLibrary,       0x491e922f, 0x5643, 0x4af4, 0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74);

// {1A6FDBA2-F42D-4358-A798-B74D745926C5}
DEFINE_KNOWN_FOLDER(FOLDERID_RecordedTVLibrary,   0x1a6fdba2, 0xf42d, 0x4358, 0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5);

// {52528A6B-B9E3-4add-B60D-588C2DBA842D}
DEFINE_KNOWN_FOLDER(FOLDERID_HomeGroup,           0x52528a6b, 0xb9e3, 0x4add, 0xb6, 0xd, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d);

// {9B74B6A3-0DFD-4f11-9E78-5F7800F2E772}
DEFINE_KNOWN_FOLDER(FOLDERID_HomeGroupCurrentUser, 0x9b74b6a3, 0xdfd, 0x4f11, 0x9e, 0x78, 0x5f, 0x78, 0x0, 0xf2, 0xe7, 0x72);

// {5CE4A5E9-E4EB-479D-B89F-130C02886155}
DEFINE_KNOWN_FOLDER(FOLDERID_DeviceMetadataStore, 0x5ce4a5e9, 0xe4eb, 0x479d, 0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55);

// {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE}
DEFINE_KNOWN_FOLDER(FOLDERID_Libraries,           0x1b3ea5dc, 0xb587, 0x4786, 0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae);

// {48daf80b-e6cf-4f4e-b800-0e69d84ee384}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicLibraries,     0x48daf80b, 0xe6cf, 0x4f4e, 0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84);

// {9e3995ab-1f9c-4f13-b827-48b24b6c7174}
DEFINE_KNOWN_FOLDER(FOLDERID_UserPinned,          0x9e3995ab, 0x1f9c, 0x4f13, 0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74);

// {bcb5256f-79f6-4cee-b725-dc34e402fd46}
DEFINE_KNOWN_FOLDER(FOLDERID_ImplicitAppShortcuts,0xbcb5256f, 0x79f6, 0x4cee, 0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x2, 0xfd, 0x46);

// {008ca0b1-55b4-4c56-b8a8-4de4b299d3be}
DEFINE_KNOWN_FOLDER(FOLDERID_UserTiles,           0x008ca0b1, 0x55b4, 0x4c56, 0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe);

// {0482af6c-08f1-4c34-8c90-e17ec98b1e17}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicUserTiles,     0x0482af6c, 0x08f1, 0x4c34, 0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17);

// {1e87508d-89c2-42f0-8a7e-645a0f50ca58}
DEFINE_KNOWN_FOLDER(FOLDERID_AppsFolder,          0x1e87508d, 0x89c2, 0x42f0, 0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58);

// {A3918781-E5F2-4890-B3D9-A7E54332328C}
DEFINE_KNOWN_FOLDER(FOLDERID_ApplicationShortcuts, 0xa3918781, 0xe5f2, 0x4890, 0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c);

// {00BCFC5A-ED94-4e48-96A1-3F6217F21990}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamingTiles,        0xbcfc5a, 0xed94, 0x4e48, 0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90);

// {AAA8D5A5-F1D6-4259-BAA8-78E7EF60835E}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamedTileImages,    0xaaa8d5a5, 0xf1d6, 0x4259, 0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e);

#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion


here

Code: Select all

FOLDERID_AddNewPrograms                = {de61d971-5ebc-4f02-a3a9-6c82895e5c04}
FOLDERID_AdminTools                    = {724EF170-A42D-4FEF-9F26-B60E846FBA4F}
FOLDERID_AppsFolder                    = {1e87508d-89c2-42f0-8a7e-645a0f50ca58}
FOLDERID_AppUpdates                    = {a305ce99-f527-492b-8b1a-7e76fa98d6e4}
FOLDERID_CDBurning                     = {9E52AB10-F80D-49DF-ACB8-4330F5687855}
FOLDERID_ChangeRemovePrograms          = {df7266ac-9274-4867-8d55-3bd661de872d}
FOLDERID_CommonAdminTools              = {D0384E7D-BAC3-4797-8F14-CBA229B392B5}
FOLDERID_CommonOEMLinks                = {C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}
FOLDERID_CommonPrograms                = {0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}
FOLDERID_CommonStartMenu               = {A4115719-D62E-491D-AA7C-E74B8BE3B067}
FOLDERID_CommonStartup                 = {82A5EA35-D9CD-47C5-9629-E15D2F714E6E}
FOLDERID_CommonTemplates               = {B94237E7-57AC-4347-9151-B08C6C32D1F7}
FOLDERID_ComputerFolder                = {0AC0837C-BBF8-452A-850D-79D08E667CA7}
FOLDERID_ConflictFolder                = {4bfefb45-347d-4006-a5be-ac0cb0567192}
FOLDERID_ConnectionsFolder             = {6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD}
FOLDERID_Contacts                      = {56784854-C6CB-462b-8169-88E350ACB882}
FOLDERID_ControlPanelFolder            = {82A74AEB-AEB4-465C-A014-D097EE346D63}
FOLDERID_Cookies                       = {2B0F765D-C0E9-4171-908E-08A611B84FF6}
FOLDERID_Desktop                       = {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
FOLDERID_DeviceMetadataStore           = {5CE4A5E9-E4EB-479D-B89F-130C02886155}
FOLDERID_Documents                     = {FDD39AD0-238F-46AF-ADB4-6C85480369C7}
FOLDERID_DocumentsLibrary              = {7B0DB17D-9CD2-4A93-9733-46CC89022E7C}
FOLDERID_Downloads                     = {374DE290-123F-4565-9164-39C4925E467B}
FOLDERID_Favorites                     = {1777F761-68AD-4D8A-87BD-30B759FA33DD}
FOLDERID_Fonts                         = {FD228CB7-AE11-4AE3-864C-16F3910AB8FE}
FOLDERID_Games                         = {CAC52C1A-B53D-4edc-92D7-6B2E8AC19434}
FOLDERID_GameTasks                     = {054FAE61-4DD8-4787-80B6-090220C4B700}
FOLDERID_History                       = {D9DC8A3B-B784-432E-A781-5A1130A75963}
FOLDERID_HomeGroup                     = {52528A6B-B9E3-4ADD-B60D-588C2DBA842D}
FOLDERID_HomeGroupCurrentUser          = {9B74B6A3-0DFD-4f11-9E78-5F7800F2E772}
FOLDERID_ImmersiveApplicationShortcuts = {A3918781-E5F2-4890-B3D9-A7E54332328C}
FOLDERID_ImplicitAppShortcuts          = {BCB5256F-79F6-4CEE-B725-DC34E402FD46}
FOLDERID_InternetCache                 = {352481E8-33BE-4251-BA85-6007CAEDCF9D}
FOLDERID_InternetFolder                = {4D9F7874-4E0C-4904-967B-40B0D20C3E4B}
FOLDERID_Libraries                     = {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE}
FOLDERID_Links                         = {bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}
FOLDERID_LocalAppData                  = {F1B32785-6FBA-4FCF-9D55-7B8E7F157091}
FOLDERID_LocalAppDataLow               = {A520A1A4-1780-4FF6-BD18-167343C5AF16}
FOLDERID_LocalizedResourcesDir         = {2A00375E-224C-49DE-B8D1-440DF7EF3DDC}
FOLDERID_Music                         = {4BD8D571-6D19-48D3-BE97-422220080E43}
FOLDERID_MusicLibrary                  = {2112AB0A-C86A-4FFE-A368-0DE96E47012E}
FOLDERID_NetHood                       = {C5ABBF53-E17F-4121-8900-86626FC2C973}
FOLDERID_NetworkFolder                 = {D20BEEC4-5CA8-4905-AE3B-BF251EA09B53}
FOLDERID_OriginalImages                = {2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}
FOLDERID_PhotoAlbums                   = {69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}
FOLDERID_Pictures                      = {33E28130-4E1E-4676-835A-98395C3BC3BB}
FOLDERID_PicturesLibrary               = {A990AE9F-A03B-4E80-94BC-9912D7504104}
FOLDERID_Playlists                     = {DE92C1C7-837F-4F69-A3BB-86E631204A23}
FOLDERID_PrintersFolder                = {76FC4E2D-D6AD-4519-A663-37BD56068185}
FOLDERID_PrintHood                     = {9274BD8D-CFD1-41C3-B35E-B13F55A758F4}
FOLDERID_Profile                       = {5E6C858F-0E22-4760-9AFE-EA3317B67173}
FOLDERID_ProgramData                   = {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}
FOLDERID_ProgramFiles                  = {905e63b6-c1bf-494e-b29c-65b732d3d21a}
FOLDERID_ProgramFilesCommon            = {F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}
FOLDERID_ProgramFilesCommonX64         = {6365D5A7-0F0D-45E5-87F6-0DA56B6A4F7D}
FOLDERID_ProgramFilesCommonX86         = {DE974D24-D9C6-4D3E-BF91-F4455120B917}
FOLDERID_ProgramFilesX64               = {6D809377-6AF0-444b-8957-A3773F02200E}
FOLDERID_ProgramFilesX86               = {7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}
FOLDERID_Programs                      = {A77F5D77-2E2B-44C3-A6A2-ABA601054A51}
FOLDERID_Public                        = {DFDF76A2-C82A-4D63-906A-5644AC457385}
FOLDERID_PublicDesktop                 = {C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}
FOLDERID_PublicDocuments               = {ED4824AF-DCE4-45A8-81E2-FC7965083634}
FOLDERID_PublicDownloads               = {3D644C9B-1FB8-4f30-9B45-F670235F79C0}
FOLDERID_PublicGameTasks               = {DEBF2536-E1A8-4c59-B6A2-414586476AEA}
FOLDERID_PublicLibraries               = {48DAF80B-E6CF-4F4E-B800-0E69D84EE384}
FOLDERID_PublicMusic                   = {3214FAB5-9757-4298-BB61-92A9DEAA44FF}
FOLDERID_PublicPictures                = {B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}
FOLDERID_PublicRingtones               = {E555AB60-153B-4D17-9F04-A5FE99FC15EC}
FOLDERID_PublicUserTiles               = {0482af6c-08f1-4c34-8c90-e17ec98b1e17}
FOLDERID_PublicVideos                  = {2400183A-6185-49FB-A2D8-4A392A602BA3}
FOLDERID_QuickLaunch                   = {52a4f021-7b75-48a9-9f6b-4b87a210bc8f}
FOLDERID_Recent                        = {AE50C081-EBD2-438A-8655-8A092E34987A}
;;;;FOLDERID_RecordedTV                = non used. This value is not defined in Windows 7 and later.
FOLDERID_RecordedTVLibrary             = {1A6FDBA2-F42D-4358-A798-B74D745926C5}
FOLDERID_RecycleBinFolder              = {B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC}
FOLDERID_ResourceDir                   = {8AD10C31-2ADB-4296-A8F7-E4701232C972}
FOLDERID_Ringtones                     = {C870044B-F49E-4126-A9C3-B52A1FF411E8}
FOLDERID_RoamingAppData                = {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}
FOLDERID_RoamingTiles                  = {00BCFC5A-ED94-4e48-96A1-3F6217F21990}
FOLDERID_SampleMusic                   = {B250C668-F57D-4EE1-A63C-290EE7D1AA1F}
FOLDERID_SamplePictures                = {C4900540-2379-4C75-844B-64E6FAF8716B}
FOLDERID_SamplePlaylists               = {15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}
FOLDERID_SampleVideos                  = {859EAD94-2E85-48AD-A71A-0969CB56A6CD}
FOLDERID_SavedGames                    = {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}
FOLDERID_SavedSearches                 = {7d1d3a04-debb-4115-95cf-2f29da2920da}
FOLDERID_SEARCH_CSC                    = {ee32e446-31ca-4aba-814f-a5ebd2fd6d5e}
FOLDERID_SEARCH_MAPI                   = {98ec0e18-2098-4d44-8644-66979315a281}
FOLDERID_SearchHome                    = {190337d1-b8ca-4121-a639-6d472d16972a}
FOLDERID_SendTo                        = {8983036C-27C0-404B-8F08-102D10DCFD74}
FOLDERID_SidebarDefaultParts           = {7B396E54-9EC5-4300-BE0A-2482EBAE1A26}
FOLDERID_SidebarParts                  = {A75D362E-50FC-4fb7-AC2C-A8BEAA314493}
FOLDERID_StartMenu                     = {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}
FOLDERID_Startup                       = {B97D20BB-F46A-4C97-BA10-5E3608430854}
FOLDERID_SyncManagerFolder             = {43668BF8-C14E-49B2-97C9-747784D784B7}
FOLDERID_SyncResultsFolder             = {289a9a43-be44-4057-a41b-587a76d7e7f9}
FOLDERID_SyncSetupFolder               = {0F214138-B1D3-4a90-BBA9-27CBC0C5389A}
FOLDERID_System                        = {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}
FOLDERID_SystemX86                     = {D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}
FOLDERID_Templates                     = {A63293E8-664E-48DB-A079-DF759E0509F7}
;;;;FOLDERID_TreeProperties            = Non supported in Windows 7 and later systems. Not used in Windows Vista.
FOLDERID_UserPinned                    = {9E3995AB-1F9C-4F13-B827-48B24B6C7174}
FOLDERID_UserProfiles                  = {0762D272-C50A-4BB0-A382-697DCD729B80}
FOLDERID_UserProgramFiles              = {5CD7AEE2-2219-4A67-B85D-6C9CE15660CB}
FOLDERID_UserProgramFilesCommon        = {BCBD3057-CA5C-4622-B42D-BC56DB0AE516}
FOLDERID_UsersFiles                    = {f3ce0f7c-4901-4acc-8648-d5d44b04ef8f}
FOLDERID_UsersLibraries                = {A302545D-DEFF-464b-ABE8-61C8648D939B}
FOLDERID_UserTiles                     = {008ca0b1-55b4-4c56-b8a8-4de4b299d3be}
FOLDERID_Videos                        = {18989B1D-99B5-455B-841C-AB7C74E4DDFC}
FOLDERID_VideosLibrary                 = {491E922F-5643-4AF4-A7EB-4E7A138D8174}
FOLDERID_Windows                       = {F38BF404-1D43-42F2-9305-67DE0B28FC23}

Sorry for my English

Ciao.

User avatar
iuli_kyle
Posts: 152
Joined: Sun Mar 18, 2007 1:49 am
Location: Romania

Post by iuli_kyle » Wed Apr 25, 2012 5:14 pm

Thank you for these :) May be useful for future releases of SFXMaker.
Image SFXMaker - The most complete switchless installer creator software

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Thu Apr 26, 2012 10:16 am

@gora any chance you can talk to your friend about including localizational switches like international inf's?

Code: Select all

RunProgram=0409:EN\\installer.exe
RunProgram=0c0a:ES\\installer.exe

Code: Select all

; 0436 is the language ID for Afrikaans
[Strings.0436]

; 041C is the language ID for Albanian
[Strings.041C]

; 1401 is the language ID for Arabic - Algeria
[Strings.1401]

; 3C01 is the language ID for Arabic - Bahrain
[Strings.3C01]

; 0C01 is the language ID for Arabic - Egypt
[Strings.0C01]

; 0801 is the language ID for Arabic - Iraq
[Strings.0801]

; 2C01 is the language ID for Arabic - Jordan
[Strings.2C01]

; 3401 is the language ID for Arabic - Kuwait
[Strings.3401]

; 3001 is the language ID for Arabic - Lebanon
[Strings.3001]

; 1001 is the language ID for Arabic - Libya
[Strings.1001]

; 1801 is the language ID for Arabic - Morocco
[Strings.1801]

; 2001 is the language ID for Arabic - Oman
[Strings.2001]

; 4001 is the language ID for Arabic - Qatar
[Strings.4001]

; 0401 is the language ID for Arabic - Saudi Arabia
[Strings.0401]

; 2801 is the language ID for Arabic - Syria
[Strings.2801]

; 1C01 is the language ID for Arabic - Tunisia
[Strings.1C01]

; 3801 is the language ID for Arabic - United Arab Emirates
[Strings.3801]

; 2401 is the language ID for Arabic - Yemen
[Strings.2401]

; 042B is the language ID for Armenian
[Strings.042B]

; 082C is the language ID for Azeri - Cyrillic
[Strings.082C]

; 042C is the language ID for Azeri - Latin
[Strings.042C]

; 042D is the language ID for Basque
[Strings.042D]

; 0423 is the language ID for Belarusian
[Strings.0423]

; 0402 is the language ID for Bulgarian
[Strings.0402]

; 0403 is the language ID for Catalan
[Strings.0403]

; 0804 is the language ID for Chinese - China
[Strings.0804]

; 0C04 is the language ID for Chinese - Hong Kong SAR
[Strings.0C04]

; 1404 is the language ID for Chinese - Macau SAR
[Strings.1404]

; 1004 is the language ID for Chinese - Singapore
[Strings.1004]

; 0404 is the language ID for Chinese - Taiwan
[Strings.0404]

; 041A is the language ID for Croatian
[Strings.041A]

; 0405 is the language ID for Czech
[Strings.0405]

; 0405 is the language ID for Danish
[Strings.0406]

; 0813 is the language ID for Dutch - Belgium
[Strings.0813]

; 0413 is the language ID for Dutch - Netherlands
[Strings.0413]

; 0C09 is the language ID for English - Australia
[Strings.0C09]

; 2809 is the language ID for English - Belize
[Strings.2809]

; 1009 is the language ID for English - Canada
[Strings.1009]

; 2409 is the language ID for English - Caribbean
[Strings.2409]

; 0809 is the language ID for English - United Kingdom
[Strings.0809]

; 1809 is the language ID for English - Ireland
[Strings.1809]

; 2009 is the language ID for English - Jamaica
[Strings.2009]

; 1409 is the language ID for English - New Zealand
[Strings.1409]

; 3409 is the language ID for English - Phillippines
[Strings.3409]

; 2C09 is the language ID for English - Trinidad
[Strings.2C09]

; 0409 is the language ID for English - United States
[Strings.0409]

; 1C09 is the language ID for English - South Africa
[Strings.1C09]

; 0425 is the language ID for Estonian
[Strings.0425]

; 0438 is the language ID for Faroese
[Strings.0438]

; 0429 is the language ID for Farsi
[Strings.0429]

; 040B is the language ID for Finnish
[Strings.040B]

; 0C0C is the language ID for French - Canada
[Strings.0C0C]

; 100C is the language ID for French - Switzerland
[Strings.100C]

; 040C is the language ID for French - France
[Strings.040C]

; 140C is the language ID for French - Luxembourg
[Strings.140C]

; 083C is the language ID for Gaelic - Ireland
[Strings.083C]

; 043C is the language ID for Gaelic - Scotland
[Strings.043C]

; 0C07 is the language ID for German - Austria
[Strings.0C07]

; 0807 is the language ID for German - Switzerland
[Strings.0807]

; 0407 is the language ID for German - Germany
[Strings.0407]

; 1407 is the language ID for German - Liechtenstein
[Strings.1407]

; 1007 is the language ID for German - Luxembourg
[Strings.1007]

; 0408 is the language ID for Greek
[Strings.0408]

; 040D is the language ID for Hebrew
[Strings.040D]

; 0439 is the language ID for Hindi
[Strings.0439]

; 040E is the language ID for Hungarian
[Strings.040E]

; 040F is the language ID for Icelandic
[Strings.040F]

; 0421 is the language ID for Indonesian
[Strings.0421]

; 0810 is the language ID for Italian - Switzerland
[Strings.0810]

; 0410 is the language ID for Italian - Italy
[Strings.0410]

; 0411 is the language ID for Japanese
[Strings.0411]

; 0412 is the language ID for Korean
[Strings.0412]

; 0426 is the language ID for Latvian
[Strings.0426]

; 0427 is the language ID for Lithuanian
[Strings.0427]

; 042F is the language ID for Macedonian (FYROM)
[Strings.042F]

; 083E is the language ID for Malay – Brunei
[Strings.083E]

; 043E is the language ID for Malay - Malaysia
[Strings.043E]

; 043A is the language ID for Maltese
[Strings.043A]

; 044E is the language ID for Marathi
[Strings.044E]

; 0414 is the language ID for Norwegian - Bokml
[Strings.0414]

; 0814 is the language ID for Norwegian - Nynorsk
[Strings.0814]

; 0415 is the language ID for Polish
[Strings.0415]

; 0416 is the language ID for Portuguese - Brazil
[Strings.0416]

; 0816 is the language ID for Portuguese - Portugal
[Strings.0816]

; 0417 is the language ID for Raeto-Romance
[Strings.0417]

; 0818 is the language ID for Romanian - Republic of Moldova
[Strings.0818]

; 0418 is the language ID for Romanian - Romania
[Strings.0418]

; 0419 is the language ID for Russian
[Strings.0419]

; 0819 is the language ID for Russian - Republic of Moldova
[Strings.0819]

; 044F is the language ID for Sanskrit
[Strings.044F]

; 0C1A is the language ID for Serbian - Cyrillic
[Strings.0C1A]

; 081A is the language ID for Serbian - Latin
[Strings.081A]

; 0432 is the language ID for Setsuana
[Strings.0432]

; 041B is the language ID for Slovak
[Strings.041B]

; 0424 is the language ID for Slovenian
[Strings.0424]

; 042E is the language ID for Sorbian
[Strings.042E]

; 2C0A is the language ID for Spanish - Argentina
[Strings.2C0A]

; 400A is the language ID for Spanish - Bolivia
[Strings.400A]

; 340A is the language ID for Spanish - Chile
[Strings.340A]

; 240A is the language ID for Spanish - Colombia
[Strings.240A]

; 140A is the language ID for Spanish - Costa Rica
[Strings.140A]

; 1C0A is the language ID for Spanish - Dominican Republic
[Strings.1C0A]

; 300A is the language ID for Spanish - Ecuador
[Strings.300A]

; 0C0A is the language ID for Spanish - Spain
[Strings.0C0A]

; 100A is the language ID for Spanish - Guatemala
[Strings.100A]

; 480A is the language ID for Spanish - Honduras
[Strings.480A]

; 080A is the language ID for Spanish - Mexico
[Strings.080A]

; 4C0A is the language ID for Spanish - Nicaragua
[Strings.4C0A]

; 180A is the language ID for Spanish - Panama
[Strings.180A]

; 280A is the language ID for Spanish - Peru
[Strings.280A]

; 500A is the language ID for Spanish - Puerto Rico
[Strings.500A]

; 3C0A is the language ID for Spanish - Paraguay
[Strings.3C0A]

; 440A is the language ID for Spanish - El Salvador
[Strings.440A]

; 380A is the language ID for Spanish - Uruguay
[Strings.380A]

; 200A is the language ID for Spanish - Venezuela
[Strings.200A]

; 0441 is the language ID for Swahili
[Strings.0441]

; 081D is the language ID for Swedish - Finland
[Strings.081D]

; 041D is the language ID for Swedish - Sweden
[Strings.041D]

; 0430 is the language ID for Southern Sotho
[Strings.0430]

; 0449 is the language ID for Tamil
[Strings.0449]

; 0444 is the language ID for Tatar
[Strings.0444]

; 041E is the language ID for Thai
[Strings.041E]

; 0431 is the language ID for Tsonga
[Strings.0431]

; 041F is the language ID for Turkish
[Strings.041F]

; 0422 is the language ID for Ukrainian
[Strings.0422]

; 0420 is the language ID for Urdu
[Strings.0420]

; 0843 is the language ID for Uzbek - Cyrillic
[Strings.0843]

; 0443 is the language ID for Uzbek - Latin
[Strings.0443]

; 042A is the language ID for Vietnamese
[Strings.042A]

; 0434 is the language ID for Xhosa
[Strings.0434]

; 043D is the language ID for Yiddish
[Strings.043D]

; 0435 is the language ID for Zulu
[Strings.0435]

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Thu Apr 26, 2012 1:17 pm

ricktendo64 wrote:your friend
Who is it? Oleg?
ricktendo64 wrote:

Code: Select all

RunProgram=0409:EN\\installer.exe
RunProgram=0c0a:ES\\installer.exe
I do not understand.
You want to get a new language prefix?
Do you want to get the prefix in the format LCIDHex or the fit format LCIDDec?
The sections are now using the format LCIDDec.

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Thu Apr 26, 2012 2:47 pm

Whatever it does not matter if its dec or hex, just so that the sfx detects what language is the OS its running on like it detects what architecture

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Thu Apr 26, 2012 8:26 pm

2 gora,

I just noticed that the module did not detect syntax errors in Language sections.

Are you and Oleg_Sch aware of this?

In my case, I was testing an installer with the -sfxlang:nnnn switch.
The installation completed with no error messages, but the language section I specified was not run. When I re-checked my config.txt I noticed a syntax error ( too many \") which was not reported by the module. When I corrected the syntax error and rebuilt the installer, the installation completed successfully with the language section run.
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Fri Apr 27, 2012 7:13 am

Please send feature requests and bug reports to the author of modules - Oleg Scherbakov
Email here, an official Russian forum, the official English forum.
Sorry, I can not answer, instead of the author. :(
Last edited by gora on Mon May 21, 2012 6:21 am, edited 1 time in total.

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Fri Apr 27, 2012 10:12 am

gora wrote:Please send feature requests and bug reports to the author of modules - Oleg Shcherbakov
Done.
I posted about the lack of an error message when a language section does contain a syntax error at the MSFN 7zsd thread.

UPDATE:
gora has explained that the module does not check if each " in a parameter is paired or unpaired in the config.txt.
So if a non-paired " is used incorrectly, the module will not give an error message. This explains why the line in my config.txt was not giving an error message when it contained an unpaired ".
"You can lead a horse to water, but you can't make it drink."

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Sun May 13, 2012 8:57 am

Modules, help file, site updated

1.5 beta (build 2478) 05/10/12

1.6 develop (build 2478) 05/10/12
+ Support for encryption

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Sun May 13, 2012 9:16 am

Thanks gora,

I posted also in this thread.
"You can lead a horse to water, but you can't make it drink."

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Wed May 23, 2012 12:32 am

@gora why doesn't the FinishMessage pop up anymore when you use SHIFT+Next?

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Wed May 23, 2012 1:10 am

2 ricktendo64
This is normal behavior of the module
OK+Shift run AutoInstall.

In Russian help file is written:
После всех операций (распаковка, запуск программ, удаление файлов, создание ярлыков и т.д.) будет выведен диалог с текстом, содержащимся в 'FinishMessage'. При любой автоматической установке ('AutoInstall' или 'AutoInstallX') вывод диалога блокируется.

TheFreezerBox
Posts: 1
Joined: Tue Mar 02, 2010 2:18 am

Post by TheFreezerBox » Tue Jan 29, 2013 11:50 pm

Fantastic work here; this thread was very useful to me. Thanks.

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Wed Jan 30, 2013 2:03 am

that reminds me:
I should get around to updating some of my previous posts to be in accord with build 2712 stable.
There have been a few minor changes by Oleg.
When I get the time I will update the affected posts.
"You can lead a horse to water, but you can't make it drink."

User avatar
bphlpt
Posts: 1372
Joined: Sat Apr 19, 2008 1:11 am

Post by bphlpt » Wed Jan 30, 2013 5:27 am

Would probably be useful to also add links to the 7-Zip home page, and where the std and modified 7-zip modules can be found to the first post as well.

Cheers and Regards

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Feb 05, 2013 5:22 am

I have begun translating portions of 7zSD_RU_2712.chm into English with Google Translate. Please bear with me. I will start with the changelog for build 2712 as given in the Russian Help Manual for v.2712. In the coming days, I will update the first post and other previous posts which have been affected by this release.

History modified SFX module

# = Changed
* = Fixed
+ = Added
– = Removed


1.5-Release (build 2712) 30.12.12

# Changed the logic processing of language sections
# Changes associated with batch build
# Changed the logic in the switch '-!' Forced leading spaces removed (gora:forum.oszone.net)
# dialogue '-sfxversion'
* Incorrect operation of switch '-mf'
* When invoking external programs "folder extract" is not set to "Default Folder"
* Wrong size dialogues with strings, using environment variables (Das Betrunkene Pferd:forum.oszone.net)
* Switch not working '-fm0' (usver32:forum.oszone.net)
* Incorrect operation of switch '-fm0' (irod61:forum.oszone.net)
* Displaying errors with incorrect sequence volumes
* lack of method 'Copy'
* Did not work 'FinishMessage' no switches or prefixes 'fmX' (jameszero:forum.oszone.net)
* The variable '%% P' does not understand the command parameters 'Shortcut', 'ShortcutX' (gora:forum.oszone.net)
* The manifest and the Russian string
* Pressing the "Select" on x64 platforms resulted in an error (gora:forum.oszone.net)
* Folder no extraction was current in the presence of the prefix 'waitall' (gora:forum.oszone.net)
+ Supports volumes
+ Button to create the "New Folder" in the "Select Folder"
+ Mapping support volumes (switch '-sfxversion')
+ Encryption support archives
+ Parameters 'BeginPromptTimeout', 'PasswordTitle', 'VolumeNameStyle' and 'PasswordText' in the configuration file
+ The prefix 'waitall' in the configuration file
+ switches '-bptX' and '-pX'
+ Flag 16384 'GUIFlags'
+ Flags 4 and 8 'MiscFlags'
+ variable module '%%P'
"You can lead a horse to water, but you can't make it drink."

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Tue Feb 05, 2013 10:10 am

You know what I found did not work

Code: Select all

Delete="\"%CommonDesktop%\\<link>.lnk\""
What am I doing wrong?

User avatar
shiner
Posts: 655
Joined: Sun Nov 08, 2009 4:18 am
Location: SE Asia

Post by shiner » Tue Feb 05, 2013 10:49 am

Rick, I don't use the parameter "Delete" in any of my SFX's, but looking at gora's examples it should work if the SFX is run without autoinstall options chosen. I think if the config.txt has autoinstall options you want to use "DeleteX" instead.

It would help if you could possibly post the entire config.txt.

Then if gora drops by, I am pretty sure you will get an answer.
"You can lead a horse to water, but you can't make it drink."

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Tue Feb 05, 2013 11:22 am

From what I read, Delete should be called if you use RunProgram or AutoInstall (without a-b, A-B, 1-0)

This was my config.txt for EasyBCD

Code: Select all

;!@Install@!UTF-8!
GUIMode="2"
MiscFlags="4"
SetEnvironment="ProgName=EasyBCD"
SetEnvironment="ver=2.2"
RunProgram="\"%ProgName% %ver%.exe\" /S /NCRC"
Delete="\"%CommonDesktop%\\%ProgName% %ver%.lnk\""
;!@InstallEnd@!
Had to use this instead of "Delete" to delete the desktop shortcut

Code: Select all

RunProgram="hidcon:cmd /c del /f /q \"%CommonDesktop%\\%ProgName% %ver%.lnk\""

User avatar
gora
Posts: 150
Joined: Wed Nov 07, 2007 7:33 am
Location: Ivanovo, Russia

Post by gora » Tue Feb 05, 2013 12:46 pm

ricktendo64, need to remove the extra quotes

Code: Select all

Delete="%CommonDesktop%\\%ProgName% %ver%.lnk" 

User avatar
ricktendo64
Posts: 3213
Joined: Mon May 22, 2006 12:27 am
Location: Honduras

Post by ricktendo64 » Wed Feb 06, 2013 11:06 pm

gora wrote:ricktendo64, need to remove the extra quotes

Code: Select all

Delete="%CommonDesktop%\\%ProgName% %ver%.lnk" 
Thanks gora, it worked (I added the quotes because of the space in the path, did not realize the regular quotes solved that problem)

Post Reply