[ModuleExclude] is specifically just for application's modules, and nothing to do with child process, right?
If yes, Child process only effected with %ChildName_JauntePE.ini in the JauntePE.dll, correct?
If I understand your first question correctly, the module lists are not used in any way when launching a child process. The modules lists are simply another mechanism for determining registry and file system redirection.
Now, whether or not the child process uses the same JPE runtime ini as its parent depends upon the filenames of the two app's executables, the names of the JPE runtime inis that are "available" to them both, the location of the JPE runtime dlls, the locations of all of these files, and the [Registry]Ini= and [Filesystem]Ini= settings within the inis. So I can't answer yes or no unless you give me the specifics for all of the above.
Sorry, if I misunderstood your explanation. But, doesn't it mean the application that changes the system registry; and because the app changes the system registry, JPE captures that changes?
If that's what you mean, what about application that only sees (no changes or writes) the location of a file from registry?
An app may have a hardcoded path in the .reg. But it eventually is going to USE that path, yes? And in so doing it must use one of the api functions the JPE has hooked. So when the app goes to USE that hardcoded path, the JPE runtime looks at the request and says, ahha, this is a path that needs to be redirected. That's what I'm getting at. You store into the .reg, or the JPEized installer does, the normal "C:\Program Files\..." location of the file, turn on file system redirection, and tell JPE to redirect the Program Files folder.
So using your example, you "install", either automatically or manually, WinShellEx and GeoShell so that they use the same portable .reg, and preferrably, the same portable file system. You also "install" them so that they are located in redirected "Program Files" directories. And if you've done the install manually, you set WinShellEx's .reg entry for where GeoShell is to point to "C:\Program Files\GeoShell". Then when WinShellEx USEs that path in a call to launch GeoShell, JPE sees it and redirects it to the portable Program Files directory and GeoShell is launched as expected.
Here's how I would probably configure it. Note that you can pretty much get all of this automatically by successfully running the WinShellEx and GeoShell installers through JPE, if you place them both into the Portables directory.
Also please note that it doesn't have to be set up this way. This way is just pretty clean and apparent, to me anyway. Technically you don't really even need to have the two apps located anywhere "near" each other:
Code: Select all
-> Portables
|
| o portable.ini
| - contains [Registry]Use=1, [Registry]Ini=.\portable.reg, [Filesystem]Use=1,
| [Filesystem]Ini=.\, and [SpecialFolders]38=Files\ProgramFiles
| - contains other sections as desired
|
| o portable.reg
| - contains entry HKCU\WinShellEx\ShellLocation whose value is
| "C:\Program Files\GeoShell\geoshell.exe"
|
-> Files
|
-> ProgramFiles
|
-> GeoShell
| o geoshell.exe
| o all of its other files and directories
| o JauntePE_jauntePE.ini
| - contains ONLY [Registry]Ini=..\..\..\portable.ini
| - contains ONLY [Filesystem]Ini=..\..\..\portable.ini
|
-> WinShellEx
| o winshellex.exe
| o all of its other files and directories
| o JauntePE_jauntePE.ini
| - contains ONLY [Registry]Ini=..\..\..\portable.ini
| - contains ONLY [Filesystem]Ini=..\..\..\portable.ini
To continue with the example, you JPElaunch WinShellEx. Its injected JPE runtime uses the Portables\portable.ini to load its settings. Registry redirection is on. File system redirection is on. And special folder #38 (the current user's "Program Files" folder) has a portable equivalent of Portables\Files\ProgramFiles.
WinShellEx "reads" the registry value at HKCU\WinShellEx\ShellLocation. This gets registry redirected by the JPE runtime, so from the .reg the value of "C:\Program Files\GeoShell\geoshell.exe" is returned to it.
WinShellEx then "launches" the executable given in the "read" registry value. This gets file system redirected by the JPE runtime, so the system is told to launch "Portables\Files\ProgramFiles\GeoShell\geoshell.exe instead. Since miscellaneous redirection is on by default, the JPE runtime also injects itself into the newly created process. That process's JPE runtime makes use of the same Portables\portable.ini to load its settings from and away it goes.