1. May someone please elaborate [waitforprogram] & [refreshshellicons] sections on PAL's launcher ini?
2. Is it possible for PAL generator to also produce a copy of the launcher's source code it created?
New: Attribute Changer (Mar 6, 2025), Platform 29.5.3 (Jun 27, 2024)
1,100+ portable packages, 1.1 billion downloads
Ad Free! Please donate today
Other\Source
directory.~3D1T0R
What don't you understand about these? Please specify what you don't understand, then I can help more.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
So ok, they're values & not sections. Im sorry, just a bit sleepy when i made that post. Thank you.
About WaitForProgram,
my questions are:
1. What actions, the launcher should implement that waits the program for? Cleaning temp? May you please specify?
2. What do you mean by conclusion here?
"If you don’t need the launcher to wait for the conclusion of the application, set this to false."
Is it
a)closing the app? Or
b)after the app performed it's task(or 1 of it's task)?
At RefreshShellIcons,
Im not a programmer, for what i know, shell here refers to the app's GUI, right?
Does this value only refreshes the icons on the GUI?or the GUI as a whole? At what point does refreshing be implemented?
Sorry for too many questions.
-:O =
WaitForProgram will work when you don't use any registry stuff or [FilesMove]/[DirectoriesMove]/[DirectoriesCleanup*] (take a look at Other\Source\PortableApps.comLauncher.nsi, Functions Post, PostPrimary and PostSecondary, and the relevant hooks for those segments in the Segments directory, to work it all out). The clean TEMP functionality works with WaitForProgram set to false - but it puts the clean TEMP in Data\temp rather than $TEMP\$AppIDTemp which is undesirable for TEMP-heavy apps. If in doubt, omit WaitForProgram=false. It's not very common that it's suitable.
RefreshShellIcons refreshes the shell icons - file types in Explorer and things like that. If you don't know that you need it, you probably don't need to worry about it.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
As far as [WaitForProgram] is concerned, the "conclusion of the application" is when the App is closed (completely), and waiting should only be disabled if the App doesn't use the registry (at all), doesn't leave anything behind anywhere, and no files need moved.
So basically if the program is already portable, or can be run in a portable mode via a command-line argument or the presence of some file in the App directory.
Note: Never trust a "portable" app to be truly portable, always check for yourself.
Regarding [RefreshShellIcons], the "Shell" is Windows' shell (Windows Explorer), the icons are the ones it assigns to files of a certain filetype, and filetypes are the extension on the end of a file's name (e.g. .mp3, .url, .pdf, .html, etc.), and associating the filetype means setting Windows to automatically open the files of a specific type with a specific program.
~3D1T0R
It's much clearer now. Thanks again.
But, One more thing,
as it seems, im working on apps that saves settings to the registry. I'l probably need
waitforprogram=true.
If, as chris said:
"If in doubt, omit WaitForProgram=false."
omiting the value waitforprogram on section [launch], would give me its default value
waitforprogram=true
(w/c is i think i need).
Right?
-:O =
Don't include default values; omit the line.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
If you include lines that tell the Launcher to do what it will do by default when it doesn't see the line, then it's just a waste of space. (which may not be much when it's only one line, but imagine every Portable App's Launcher configuration including every line despite the fact that a large majority of them are telling the Launcher to do it's default, and you now have tonnes of unnecessary overhead. See?)
~3D1T0R
Thx
-:O =