JauntePE with launcher (ObjectDock)

Discuss anything related to JauntePE, the utlimate utility to help you tame non-portable applications. Share your experience about the apps that work with JauntePE, and the apps that don't.
Message
Author
Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

JauntePE with launcher (ObjectDock)

#1 Post by Chris »

Hello, I have problem with ObjectDock where application still redirects even though I add:
[ModuleExclude]
1=*

I tested it using osk.exe (On-ScreenKeyboard). When running osk from ObjectDock, the setting is stored in the OD-JauntePE registry.
So, I wonder is it possible to make JauntePE ignores applications launched from ObjectDock?

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

Re: JauntePE with launcher (ObjectDock)

#2 Post by redllar »

Chris wrote:Hello, I have problem with ObjectDock where application still redirects even though I add:
[ModuleExclude]
1=*

I tested it using osk.exe (On-ScreenKeyboard). When running osk from ObjectDock, the setting is stored in the OD-JauntePE registry.
So, I wonder is it possible to make JauntePE ignores applications launched from ObjectDock?
Yeah, it's possible by creating at least a couple of JPE runtime inis, one for OD and one for the other apps. If osk is the only one you don't want the registry to be redirected for, then you can create a osk_jauntePE.ini with [Registry]Use=0 and put it in the directory that the JPE runtime files are in that osk is using. You can also put it in the osk.exe directory if you want.

There's also a way to group apps together, causing them all to use the same JPE runtime settings. It's a bit more complicated to set up so before I suggest using it I would need to know what different combos of settings you're looking to use for what apps.

I'm a bit confused about why the [ModuleExclude]1=* setting isn't working for you though. I would think it would affect all apps launched by OD, as well as OD itself. It depends on your setup though, like if you have copies of the JPE runtime floating around, etc. So the more info you can provide about how you're running things and what you have where, the better the problem can be diagnosed and hopefully solved.

Also, I remember Firewrath wanting a similar scenario, using PStart as his app launcher. So you might check the zip he contributed to this effort, which can be found here.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#3 Post by Chris »

First, I want to say thank you, to you redllar for your brilliant mind and work to make wonderful softwares. Besides using JauntePE constantly I also use your FungusClock.

Regarding the osk, I use osk.exe only for testing to check whether [ModuleExclude]1=* would prevent redirecting of other applications I launched with OD.
I tested by turning off all running JauntePE applications, like volumouse, Scroll++, etc. And tested ModuleExclude again, unfortunately it did not work (didn't test with restart yet). However, it works wonderful using additional JPE runtime ini.

About combos of settings, I create JauntePE apps using an ini template (for the location of sysfile & registry only) and I always opt to redirect sysfile & registry when creating the exe. And to prevent unwanted entry got in the reg file I put the reg file to read-only. So, I usually set the settings first as I can not change settings after the reg is set to read-only...I guess I like it that way, so the settings won't be changed accidentally.

I'm also using EWF. Basically it redirects writes of system folder to RAM. I think this could be the culprit why ModuleExclude doesn't work. I have no other computer to test at the moment tho.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#4 Post by redllar »

First, I want to say thank you, to you redllar for your brilliant mind and work to make wonderful softwares. Besides using JauntePE constantly I also use your FungusClock.
Thanks, but from a dev's viewpoint, FungusClock is/was crap. JPE is still mostly crap but getting a bit better.
Regarding the osk, I use osk.exe only for testing to check whether [ModuleExclude]1=* would prevent redirecting of other applications I launched with OD.
I tested by turning off all running JauntePE applications, like volumouse, Scroll++, etc. And tested ModuleExclude again, unfortunately it did not work (didn't test with restart yet). However, it works wonderful using additional JPE runtime ini.
Okay, to get my thick skull around this, you're launching apps from OD, and you have launched OD via JPE, and your objectdock_jauntepe.ini file has [ModuleExclude]1=* in it. And you have no entries in the [ModuleInclude] section. Correct? And if possible, could you please post your od-jpe ini's contents here?

If that's the setup then I would expect no app to have any kind of redirection applied to it, including OD. So the portable reg should be empty except for the header record. I don't have OD handy so I'll download it to check it out. I did just recently find a bug in the 012 jauntePE dll related to the module exclusion and inclusion lists, but the bug only shows up if you've turned registry redirection off, which, if I read your posts correctly, is not the case here.
About combos of settings, I create JauntePE apps using an ini template (for the location of sysfile & registry only) and I always opt to redirect sysfile & registry when creating the exe. And to prevent unwanted entry got in the reg file I put the reg file to read-only. So, I usually set the settings first as I can not change settings after the reg is set to read-only...I guess I like it that way, so the settings won't be changed accidentally.
Sounds like a good idea to me, especially since I run a number of utilities the same way. Using a template for every app might mean that some apps don't perform as well as others, however.
I'm also using EWF. Basically it redirects writes of system folder to RAM. I think this could be the culprit why ModuleExclude doesn't work. I have no other computer to test at the moment tho.
Does EWF use a driver or service to do its work? If so, it's probably not causing any problems. However, if it's doing api-hooking as JPE does, then it could possibly be a problem. Just to make sure, I'm going to still try out OD and report back to you my findings. Hopefully I'll be able to come up with a good ini for its use.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#5 Post by Chris »

Thanks, but from a dev's viewpoint, FungusClock is/was crap. JPE is still mostly crap but getting a bit better.
Even though there are some things that don't work as I want from FungusClock, no other clock applications can use my skin correctly like it. And I think i'm so getting used to use it, I tried ClocX, ElprimeClock, and other applications that I forgot their names, they all have things that can't be forgiven (from my pov), so I still stick with FungusClock.
I never think JPE is crap, I always think JPE is comparable with other virtualization apps, even from its pre-alpha 0.1.0 state. I did test thinstall, there are apps that thinstall can't make portable while JauntePE can do it easily. I'm not an expert or dev but from that test alone, I could say that JauntePE has irreplaceable part in the virtualization world.
And you have no entries in the [ModuleInclude] section. Correct?
Yes that's correct, and crownixx suggested to add it, but the result is the same. Here is the ObjectDock_jauntePE.ini that I'm using:

Code: Select all

[Registry]
Use=1
Data=.\JPE-Registry\%appname%_registry.reg 

[Filesystem]
Use=1
Data=.\JPE-FileSystem\

[ModuleExclude]
1=*

[ModuleInclude]
1=ObjectDock.exe

[Redirection]
UseIcon=0
ModFrame=0
I have my registry and filesys redirection on, so it should not because of the bug you mentioned.

Yes, the EWF has it's own service. I don't know if it's doing api hooking or not. And if I'm not mistaken I'm getting access violation thingy quite often when I first started EWF. But, lately not anymore, maybe my RAM is broken or not compatible with my compy as EWF should prevent any changes to the software part.
Thank you for your help.

EDIT: One more thing, when I run JPE application, the appname_Jauntepe.ini would be populated with non-relative entry, like example:

Code: Select all

[SpecialFolders=HEWLETT-5K1589J\Owner]
Created=1
56L=C:\WINDOWS\resources;56
41L=C:\WINDOWS\System32;41
Because I'm putting my Windows on Z: drive; I guess it won't run good if I use the app on other pc so I decided to make the ini file as read-only. It won't effect anything, right?

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#6 Post by redllar »

EDIT: One more thing, when I run JPE application, the appname_Jauntepe.ini would be populated with non-relative entry, like example:
Code:
[SpecialFolders=HEWLETT-5K1589J\Owner]
Created=1
56L=C:\WINDOWS\resources;56
41L=C:\WINDOWS\System32;41
Ahh, thanks for that very useful info. If you are getting that "SpecialFolders=..." stuff created, that means you're running with the 0.1.0 or 0.1.1 version of the jauntePE dll. The 0.1.2 version does not spit out that info. And I'm not sure the 0.1.0 and 0.1.1 versions have the capability to handle [ModuleExclusion]1=* entries. You'll need to open explorer, browse to the jauntePE dll that's being used by OD, right-click on it, select Properties, and then see what the Version tab's info says.

If you have multiple copies of the JPE runtime laying around, please verify the version info on all of them. Definitely replace any 0.1.0 version with 0.1.1. Since 0.1.2 is buggy re: file system redirection, if you want to for test purposes you could go ahead and replace all jauntePE dlls with the 0.1.2 version and then see if the problem still occurs.

In any event, I now have the app and will test with it as soon as I get a new build out to fix the bugs I found yesterday and last night.
Because I'm putting my Windows on Z: drive; I guess it won't run good if I use the app on other pc so I decided to make the ini file as read-only. It won't effect anything, right?
Actually, one of the things JPE should be doing for you is to make the portablized app Windows-drive-independent and usable on any Windows system. That "SpecialFolder=" stuff was an idea I had to help with portablizing the non-portable paths that apps like to store in the registry and then try to re-use, like on their most recently used files list. I never got around to adding in the code to make use of the info though, and having it created was slowing down app startup time, so that's why I decided to stop outputting the info in 0.1.2.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#7 Post by Chris »

Sorry to confuse you, the SpecialFolders info was actually from Firewrath's JauntePE-contrib.zip. I am currently using version 0.1.2. but as I put the ini as read-only I didn't realize that JPE is not outputting the info anymore.

I also applied version 0.1.1. If I'm not mistaken I would need to launch the application using JauntePE.exe as I found no option to build the exe. And if I only overwrite the current jauntePE.dll and run previous built exe, it would say "The jauntePE dll is only usable with applications that are started with the same version of the JauntePE launcher". Unfortunately, the [ModuleExclude] for version 0.1.1 did not work.

I also did test with different application, it seems the [ModuleExclude] works okay. It will not redirect anything, until I add [ModuleInclude]. I also noticed the launched app still had the border red line even not being redirected. From the test I was thinking maybe [ModuleExclude] doesn't work because of a specific application, which in this case is ObjectDock.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#8 Post by redllar »

Heheh, this is really getting confusing, especially since I didn't properly label the JPE exe's for the 011 and 012 releases.

The only version of JPE missing the build wizard is the 020 version. That might also explain the "The jauntePE dll is only usable with applications that are started with the same version of the JauntePE launcher" message.

Thanks for testing with something other than OD. I do now have OD and will begin testing with it using the JPE 013 build sometime today and will let you know what I find asap.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#9 Post by Chris »

The only version of JPE missing the build wizard is the 020 version.
Yes, I think it was in JauntePE020, I renamed the folder of JPE based on the version of jauntePE.dll.

I just tried the new build with ObjectDock, but unfortunately ModuleExclude didn't work.
If somehow you are looking for application to test JauntePE, try Unlocker. It only needs to create registry entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_UNLOCKERDRIVER5 when used from command-line. I was able to get the help by typing Unlocker -h, but it won't work when I use it. Maybe it is because Enum needs permission.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#10 Post by redllar »

I just tried the new build with ObjectDock, but unfortunately ModuleExclude didn't work.
Okay. I just had a breakthrough with grannygeeks bug find so I'll get to work on yours tomorrow. Hopefully I'll get as lucky with JPE's problem with OD as I had today with the other JPE bugs.
If somehow you are looking for application to test JauntePE, try Unlocker. It only needs to create registry entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_UNLOCKERDRIVER5 when used from command-line. I was able to get the help by typing Unlocker -h, but it won't work when I use it. Maybe it is because Enum needs permission.
Hmmm, that looks a driver key that only gets created by the system during a driver install, and the system goes into kernel mode, and yeah, I think it tacks some permission settings onto it. I wasn't able to get that to work out when I tried mucking with OpenedFileView's on-the-fly-driver-install, but I'll look into it when I have the time.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#11 Post by Chris »

I decided to test the [ModuleExclude]1=* with different launchers. I tested it with RocketDock, RKLauncher, and Qsel.

On all my tests, osk.exe always get in the JauntePE reg files.
And I decided to use Process Explorer, as it would also write settings in the registry. I didn't find any ProcessExplorer settings in the JauntePE registry, but I also couldn't find its settings in the real Windows Registey either.
So, each time I run it within JPE-launcher, it will ask for License Agreement (EULA).

On all the test I'm using this "AppName"_JauntePE.ini settings and using version 0.1.3:

Code: Select all

[Registry]
Use=1
Data=.\JPE-Registry\%appname%_registry.reg 

[Filesystem]
Use=1
Data=.\JPE-File System\

[ModuleExclude]
1=*

[Redirection]
UseIcon=0
ModFrame=0
One more thing, even I'm using ModFrame=0, it would still show the red border. Not a biggie tho, I could disable when I'm building exe from the Wizard's setting.

Hope these info could be useful.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#12 Post by redllar »

I finally got around to testing this. Sorry it took so long. And sorry for the long, but necessary, post. Please read it all, and carefully.

What I was able to find out is that the OD-launched app processes are not using the OD-jpe ini. They are using the JPE-jpe ini located in the directory that the JPE runtime is located in. And this ini happens not to have the same module exclusion info. So in your case I'm assuming that the OD-launched app processes are not using any JPE ini at all, and therefore end up reverting to the settings that were placed into the OD portable launcher. This makes sense now that I think about the searching order that the JPE runtime goes through to find the most relevant ini for the currently running app, but it's obviously not what you want.

The weird thing is that the OD-launched app processes do end up using the portable OD registry and file system redirection info. This does not make sense to me so I'm going to have to further explore why this is happening.

As a workaround and test case, what I'd like to suggest that you do is to rename your OD-jpe ini to JauntePE_jauntePE.ini and then see how things work out. Assuming that your OD-jpe ini is in the ObjectDock.exe directory and that you have also placed the jauntepe.dll and madchook.dll files in that directory as well. If this is not the case then we'll need to try another setup based on the info you give me for my below request.

Given the "almost too flexible" setup combinations you can use with JPE, it would make things much easier on me if I knew exactly where you have placed the various exes and JPE files. I need to know where the jauntePE.dll and madchook.dll files are, where the ObjectDock.exe and osk.exe files are, and where the ObjectDock_jauntePE.ini file is. With this info I'll be able to better advice you on where to place the various JPE-related files.

I also need to know for sure how you're launching OD, whether you're launching it from the JPE gui or whether you've built a launcher for it. If you built a launcher for OD it would really help me if you could confirm to me what set of JPE dll files OD is actually using, just to make sure that you didn't build the OD launcher to use the set of JPE dll files located in the JPE directory instead of the OD directory. The easiest way to do this is to temporarily rename the jauntepe.dll file to something else, run the OD launcher, and see if it complains or not. If it complains then that's the set of JPE dlls that it wants to use. If it doesn't complain then try another set until the actual set it uses is found.

What really surprised me about all this is the amount of non-portable file system stuff OD creates. Have you actually played around with the JPEized OD enough to get those portable appdata and my docs directories populated with stuff? I'm thinking this app would make a great example of how to optimize your JPE ini with regards to file system use.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#13 Post by redllar »

And I decided to use Process Explorer, as it would also write settings in the registry. I didn't find any ProcessExplorer settings in the JauntePE registry, but I also couldn't find its settings in the real Windows Registey either.
So, each time I run it within JPE-launcher, it will ask for License Agreement (EULA).
Sounds like it's not getting its info stored into any registry, system or portable. Could it be that the .reg it's using is set as read only?

I'm thinking it's time for some minimal logging info. I already have it with the JPE version I run here, but having it available as a setting for you guys would really help things out.

redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

#14 Post by redllar »

One more thing, even I'm using ModFrame=0, it would still show the red border. Not a biggie tho, I could disable when I'm building exe from the Wizard's setting.
Those [Redirection] settings you have in the ini unfortunately aren't used from a JPE runtime ini. They're only used from the JPE launchpad or when building a portable launcher. That's because they're considered launch settings, not runtime settings. The launch settings are those that I considered to be global; ones that you wouldn't want to set on a per-app basis.

Chris
Posts: 106
Joined: Sun Dec 03, 2006 10:08 am

#15 Post by Chris »

Ah, thank you. By renaming AppName_JauntePE.ini to JauntePE_JauntePE.ini, it works good with RocketDock, but with ObjectDock it gives the same result. It creates reg according to the exe name I launch (OSK, Regedit), but with OD the reg files are not empty.
Now get ready for a quite long post...

Talking about OD using different ini setting, I think I experienced it. But, I'm not sure. As you know I'm using template, to redirect file system to specific directory which is "JPE-FileSystem". But before, I used: "JPE-File System" (with space between File and System). When I tested those apps, I was getting "JPE-File System" folder besides "JPE-FileSystem" in the application. Which means it had used different ini setting, but it happened only once on the test.

I put:
ObjectDock, JauntePE.dll, and ObjectDock_jauntePE.ini (now JauntePE_JauntePE.ini) are in Y:\SYSTEM FILES\PROGRAM FILES\ObjectDock(JPE)
OSK.exe in Z:\WINDOWS\system32
JauntePE.dll 0.1.0 in Y:\TOOLS\+SYSTEM\JauntePE 0.1.0
..
Up to JauntePE.dll 0.1.3 in Y:\TOOLS\+SYSTEM\JauntePE 0.1.3
The madchook.dlls are always in the same location with JauntePE.dlls.
I also put JauntePE.dll & madchook.dll in template directory in JauntePE.dll 0.1.0 in Y:\TOOLS\+SYSTEM\JauntePE 0.1.0\Template. I also put rename_JauntePE.ini. So, when I want to make portable I only need to copy all file & 2 empty folders (from template folder) to the exe, rename rename as the exe; and build the exe with wizard. I also copy empty folders, because if I'm not mistaken JauntePE won't create the folders by itself.

So my JauntePE.dll & madchook.dll are in:
1. Y:\TOOLS\+SYSTEM\JauntePE 0.1.0
2. Y:\TOOLS\+SYSTEM\JauntePE 0.1.0\template
3. Y:\TOOLS\+SYSTEM\JauntePE 0.1.1
4. Y:\TOOLS\+SYSTEM\JauntePE 0.1.2
5. Y:\TOOLS\+SYSTEM\JauntePE 0.1.3
6. Y:\SYSTEM FILES\PROGRAM FILES\ObjectDock(JPE)

I don't really understand what do you mean by building launcher, but I built JPEexe using JauntePE.exe wizard. After I rename the ini to JauntePE_JauntePE.ini, I tried to rename JauntePE.dll, it complains. I rename it back to ObjectDock_JauntePE.ini, it also complains. So, I think it is using the correct JauntePE. But I have one thought, that maybe another JPEized application could effecting another.
For example, I tried to JPEized one global application (Window Manager type) that connected to every window. I was successfully captured the registry & file system to its folder, but it also still writing to the real Windows registry.
Have you actually played around with the JPEized OD enough to get those portable appdata and my docs directories populated with stuff?
I believe the appdata is the place where OD save its settings. It creates files: AppImages,ini, CurrentTheme.ini, CurentTheme_Backup.ini, and Settings.ini
But it seems, JPE redirects only 2: CurrentTheme.ini and Settings.ini. And regarding My Documents\ObjectDock Library, I never touched it, when I deleted OD files in myDoc, it was redirected to application folder.
I got one problem with a dll tho, which doesn't show one icon, but maybe I can do something about it.
Sounds like it's not getting its info stored into any registry, system or portable. Could it be that the .reg it's using is set as read only?
I'm sure it has not set to read-only, as it create the registry by itself. If I have sysinternal in the real registry, it will not ask any EULA. But if I delete sysinternal from real registry, processExplorer would always ask EULA. So, it seems that processExplorer can read the real registry but can not write to the real registry. Maybe it would be better to give you a movie to show you. I think logging feature should be great to check things.

EDIT: I thought ObjectDock was working, so I edit my post accordingly.

Post Reply