Writing a non-portable app converter: need apps to test with

Discuss anything related to portable freeware here.
Post Reply
Message
Author
redllar
Posts: 411
Joined: Thu Aug 03, 2006 7:52 pm
Contact:

Writing a non-portable app converter: need apps to test with

#1 Post by redllar »

Hey all.

I've created an app that's showing promise in being able to "convert" a non-portable app into a portable one. What it does is trap the registry api calls that an app makes and redirects them to an app registry ini. So the registry never gets touched except for reads of values that are not found in the app registry ini.

I've tested it against a very basic test app I wrote and would now like to do some basic real world testing.

So please post here if you have any ideas of simple zipped up apps that would be good examples for me to test against. Nothing too big or fancy. Just some little non-portable apps that you'd like to one day use in a portable manner.

If all goes well with these types of apps I'll then move on to apps that use an installer to create their initial registry entries and maybe something big.

Darkbee
Posts: 291
Joined: Mon Feb 06, 2006 8:35 am
Contact:

#2 Post by Darkbee »

This sounds a lot like RegRapper but I suppose, the more the merrier.

I would suggest these apps to test with:
WackGet (download manager)
HDTune (Hard Drive bench-marking)
CPick (color picker)

I'm still looking for a portable backup program in a similar vein to SyncBack so if anyone could suggest a non portable freeware program with similar features that'd be a good one to test (at least for me anyway! ;) ).

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

#3 Post by redllar »

Darkbee wrote:This sounds a lot like RegRapper but I suppose, the more the merrier.

I would suggest these apps to test with:
WackGet (download manager)
HDTune (Hard Drive bench-marking)
CPick (color picker)

I'm still looking for a portable backup program in a similar vein to SyncBack so if anyone could suggest a non portable freeware program with similar features that'd be a good one to test (at least for me anyway! ;) ).
Thanks for the suggestions and links.

I read RegRapper's readme and it allows the non-portable app to do more than I want to allow the app to do (I don't want the app to modify the registry at any point in time.) So, we'll see...

User avatar
Fluffy
Posts: 457
Joined: Sat Apr 15, 2006 6:37 pm

#4 Post by Fluffy »

YAY! It's redllar! fungusApps forever! Though I must admit that the newer versions of FastStone Capture are more favorable to me than FGWndGrab, I doubt I will ever use a different clock than fungusClock. Everyone make sure to check out his site, many of his applications are portable and fantastic to use!

On that note, I'm testing fungusAltTab as we speak for portability, and so far I like what I see. Expect a new database entry for this gem!

As far as apps to test goes, are you also trying to rectify using the %appdata% folder as well? If so, take a look at the game Scorched3D, which writes to this folder.

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

#5 Post by redllar »

Hey Fluffy. Thanks for the positive feedback and the plug. :)

I agree about the FastStone apps. They're great and Capture kicks the beans out of my little app.

Thanks for the test app suggestion as well. If the registry redirects work good enough then, yeah, I'll move onto other areas of non-portability.

While I'm here, I have a question for you portability gurus. I just finished testing the HDTune app. All of the app-level accesses were redirected to the ini. But RegMon showed several low-level device configuration CreateKey and SetValue requests that did not get redirected. I now believe those accesses were internal to Windows and were caused by HDTune making power management api calls, and therefore not something to be concerned with. But I could do with someone else's opinion on whether those accesses would mean that the app would not be considered portable.

Darkbee
Posts: 291
Joined: Mon Feb 06, 2006 8:35 am
Contact:

#6 Post by Darkbee »

Actually, I might have been a little misleading on the HDTune front, since it is already listed in the database. I think as far as portability goes we are mostly concerned with two things:

1) Having application configuration settings retained across all computers. With HDTune some trivial settings are stored in the registry (and so it was added to the database anyway).

2) Leaving no trace of the application's activity on any computer. Now this one is probably open for debate. If HDTune causes those registry entries you are talking about then you could argue that it leaves traces BUT, I would argue that they are so cryptic and not obvious to most users unless they were specifically searching for them, that they are really not important.

I'm no expert but that it just my two penneth worth.

User avatar
Fluffy
Posts: 457
Joined: Sat Apr 15, 2006 6:37 pm

#7 Post by Fluffy »

I agree with Darkbee for the most part. As far as "leaving no trace" goes, that's more an issue with "stealth" usage, not necessarily portable. Although it's not really good form, a truly portable app may very well leave some traces of its use on the host computer as long as all functionality and settings are retained between sessions, regardless of what computer it's running on. If registry values are added/modified but do not contain program settings, then they have no impact on portability.

I think it's great that those trivial settings from HDTune have been redirected though, it's one step closer to making it a fully portable application which is what your original goal is with this launcher, I'm assuming. Now I just need to figure out why fungusAltTab causes so many strange bugs with other applications like KMPlayer, like screwing around with all of the hotkeys. :evil:

User avatar
Andrew Lee
Posts: 3063
Joined: Sat Feb 04, 2006 9:19 am
Contact:

#8 Post by Andrew Lee »

Yeah, when I am testing apps, "leaving no trace" has never been one of the objectives.

As long as settings are retained on multiple computers, I am happy.

However, for certain apps where the settings are bound to change eg. HDD monitors (how likely that you would have the EXACT configuration of HDDs on the machines that you are running the app on?), this consideration does not apply.

User avatar
Fluffy
Posts: 457
Joined: Sat Apr 15, 2006 6:37 pm

#9 Post by Fluffy »

Well, I just saw that IMGBurn got updated to 2.0.0.0 and figured it'd make yet another great candidate for apps to test your launcher with due to the numerous settings the new version writes to the registry. Actually, I haven't fully tested it so it may very well write some of the settings to an .ini located somewhere else than the app folder or the %appdata% path (possibly %WINDIR%) though I suspect that it's all registry-based since that's where the program's always stored settings in the past.

Homepage is here, with the download located here.

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

#10 Post by redllar »

Hey all,

Long post here. Sorry.

Thanks for the explanation of portable vs stealth. I guess stealth is what I'd like to get as close to as possible. But I'm willing to live with portable if I can make it all work as it does now.

I'm having very good success testing-wise. As far as I can tell, all the apps I've tested so far have not modified the registry. Either in their own app keys or in several system keys that have shown up in the registry ini (HKLM\Software\Microsoft\Windows\CurrentVersion\Run, DirectDraw, Direct3D, and DirectSound keys for instance.) I don't know if every modified system key got redirected as I got tired of having to filter through RegMon's output constantly. I also haven't taken the time to run something like RegShot that would help with checking for changes.

The testing steps I took were: 1) export the app's main key, 2) rename it, 3) run the app as portable, 4) repeat the process if anything other than the main key showed up in the registry ini, 5) verified that all of the registry key's contents agreed with the dumped contents and that it was still renamed, and 6) that the registry ini agreed with the changes I made while running the app and playing with its options. Do you think this is extensive enough testing or should I change my approach?

The ones I've tested so far are as follows:

Tested:
o HDTune (success with launcher and standalone)
o CPick (success with launcher only)
o RegPad's export to registry feature (success with launcher only)
o PSPad (success with launcher and standalone)
o MetaPad (success with launcher and standalone)
o UPX Shell by ION Tek (success with launcher only)
o SereneScreen Marine Aquarium 2+Time screen saver (success with launcher and standalone)

Several of the apps crashed when run as a standalone portable (the exe was modified to include a reference to the portability dll.) What I've discovered so far is that packed exes, or exes that delay load the advadpi32 dll, or Delphi-created exes, crash and burn when modified in this manner. However, I was able to unpack the packed exes, apply the portability dll, re-pack the exe, and then run them successfully, as long as they didn't have one of the other problem causing symptoms as well.

The only 2 problems I've seen so far are: 1) using the system ini interface can be slow and 2) I may need to do something with regards to change notification requests that "point" to keys held in the registry ini. I think I can help solve #1 with code I wrote for RegPad but #2 will require more work on my part if I want to support such a feature. It's doable but I don't know if it's worth it.

If you all think my testing approach has been thorough enough, I would like to convert the command line exes I've been using into win32 apps, so that they may be used as SendTo, Short cut, and Drag-n-Drop targets without popping up command boxes. And then you guys can have a shot at using them on some of the apps on your own computers.

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

#11 Post by redllar »

Fluffy wrote:Now I just need to figure out why fungusAltTab causes so many strange bugs with other applications like KMPlayer, like screwing around with all of the hotkeys. :evil:
fAltTab uses low-level keyboard and mouse system-wide hooks. That's probably where the problem is. You could try to change the load order of the apps that are at odds. There are also several other Alt+Tab apps out there that you could give a try. If you really want to use fAltTab, and if you tell me which KMPlayer you're running (there are at least 2), or any of the other apps that get messed up when fAltTab is running, I'll run them here and see if I can find a problem. It would also help a great deal if I knew what hotkeys weren't working. No promises though as I already run several hotkey-using apps and I've never encountered any hotkey-related problems.

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

#12 Post by redllar »

Fluffy wrote:Well, I just saw that IMGBurn got updated to 2.0.0.0 and figured it'd make yet another great candidate for apps to test your launcher with due to the numerous settings the new version writes to the registry. Actually, I haven't fully tested it so it may very well write some of the settings to an .ini located somewhere else than the app folder or the %appdata% path (possibly %WINDIR%) though I suspect that it's all registry-based since that's where the program's always stored settings in the past.

Homepage is here, with the download located here.
Thanks again. I'll try and get started on file access redirection as soon as I get the win32 apps cobbled together and tested.

User avatar
Fluffy
Posts: 457
Joined: Sat Apr 15, 2006 6:37 pm

#13 Post by Fluffy »

Hell, if you're feeling real masochistic, you could always give it a go with Yahoo! Messenger (I think I detected 900+ changes to the registry after installing and running that one)! :twisted:

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

#14 Post by redllar »

Sorry, I was never into that sorta stuff. :)

I did just try redirecting ImgBurn though, both its installer and the app itself. And according to RegShot (this is a great app) and my own eyes, nothing got into the registry except a few HKLM and HKU changes against low-level system keys, just like HDTune. The ImgBurn installer added a start menu directory and that was it for the file system.

So I think I'm ready to make the redirecting app available for pre-alpha testing. I didn't think about this before, but would it be okay if I used this thread for feedback from anyone who tries it out and has problems? It's cool either way. I just want to make sure the powers-that-be are okay with it.

I also need to come up with a name for this thing. Right now I'm calling it PortaPotty, just because that's the first thing that popped into my head when I was playing around with PortaThis, PortaThat, names. So if anyone has any ideas, please pass them along. ReDirector, RegRunner, PortaRunner, ...? I was thinking about using a USB pen drive icon as the app's icon, if that helps.

User avatar
Fluffy
Posts: 457
Joined: Sat Apr 15, 2006 6:37 pm

#15 Post by Fluffy »

Well to be perfectly honest if I was in charge I'd give you your own section of the forum simply because you seem to be very diligent in making apps that can run very well in a portable fashion. I don't think Andrew would mind you using this thread as a feedback thread (I'm pondering whether to e-mail some other small bugs I've run across with fungusTabs and a few other appsof yours or if I should just create forum topics for them in here), but that's up to him.

As far as a name for your app goes, how about:

Memoirs
RememberMe?
JumpStart

Post Reply