m^(2) wrote:How does it work?
Does it inject running explorer, or restart it?
What does user have to do to close it? Restart again?
Does it work with explorer only or with other tools too? I guess it OK for injected explorer / 7z descendants?
Lets start again with the theory
1. Shell integration function is depend on system explorer shell. And system explorer shell is from the explorer.exe
2. Thus to portablized the shell extension, we need to portablized explorer.exe. Lets take 7-Zip as our example
3. 7-Zip is already portablized and it have its virtual registry name 7-Zip.reg
4. Normal explorer.exe
can't "see" the virtual 7-Zip.reg BUT we can make portablized explorer.exe
"see" the virtual 7-Zip.reg.
6. If portablized explorer.exe can "see" the virtual 7-Zip.reg, thus we can have portable 7-Zip shell extension
In order to portablized explorer.exe, we need to use "InjectOnly=1" setting because the explorer.exe is already running in our system. You don't need to kill the normal explorer.exe in order to run the portablized explorer.exe. The "InjectOnly" setting can also be apply to other process.
How it work?
Run the jauntePE launcher for 1st time and the explorer.exe will be injected and redirected with jauntePE. Run for the 2nd time to uninject and stop the explorer.exe from redirection. Redllar has explain this in the readme.html>The Examples>Explorer Example
and you can read more there.
The way i set up the portable 7-Zip shell extension
1. Run portablized explorer.exe with normal2 config.
2. From now, any execution under the portablized explorer.exe will be redirected. So i run the 7-zip installation
3. After finish with the installation, turn off the portablized explorer.exe
4. Tokenize the 7-Zip.reg using JPE Tokenizer.
5. Edit the explorer_jauntePE.ini config (previously contain normal2 config) to optimize the settings.
6. Now run portablized explorer.exe that using the optimized config
To make the optimized explorer_jauntePE.ini config, i have take below points as important
1. Filesystem redirection must be turn on. Reason: 7-Zip shell extension in the right click menu contain the location of the installed 7-zip
2. the virtual registry location for portablized explorer.exe must be point to the virtual 7-Zip.reg. Reason: We want the virtual 7-Zip.reg visible to the portablized explorer.exe in order to get the right click menu
3. The 7-Zip.reg must be tokenize with JPE Tokenizer to change all the actual path in the registry with specially-formed JauntePE substitution tokens. Reason: We want the 7-Zip right click menu can be run in any location without error.
Did i still miss other important points?So far i got the portable 7-Zip shell extension working partially.For example, the right click to a file>add to archieve is running okay but right click to an archieve file (to get the extract menu) will produce Visual C++ runtime error.
I also can't figure out why renaming the application folder also make the portable 7-Zip shell extension didn't work(see my video demo)
Here is my Portable 7-Zip shell extension demo.7z
flash video made using Wink
. Only 0.98Mb. It's a prove i'm not making this story