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

Discuss anything related to portable freeware here.
Post Reply
Message
Author
portable-freak
Posts: 57
Joined: Sat Jul 08, 2006 8:39 am

#91 Post by portable-freak »

redllar wrote: ... the error message, does it have a complete file path in front of portaPotty.dll. In other words, does it say "This application has failed to start because C:\Blah\Blah\Blah\portaPotty.dll was not found." Or does it say "This application has failed to start because portaPotty.dll was not found." If you get the one without the path, is the portaPotty.dll in the same folder as the prog_portable.exe file when you start the prog_portable.exe file?
You're not bothering me at all mate.
Alright, putting a copy of portaPotty.dll into the same directory as prog_portable seems to do the trick (!)
I am now able to run the applications from different locations without problems ( except for "slow" exit, but this has been already mentioned I know ;) )
Cathy is an exception though, cathy_portable is successfully build ( forced ) but when you launch it nothing happens, an empty portaPotty.ini is created.
redllar wrote: For every successfully built and running prog_portable.exe, you don't need the original and you don't need PortaPotty.exe. You just need prog_portable.exe and portaPotty.dll (and portaPotty.ini.) However, I will be changing how the dll works and how the ini is formatted several times in the next few weeks, and you will probably want to have those changes incorporated into your prog_portable versions of the application, so I personally would keep the original exes around until those 2 files get finalized.
Exactly my thoughts.
Needless to say, I am looking forward to all those beautiful things you're planning to add.

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

#92 Post by Andrew Lee »

Just tried the latest build. It still doesn't run on Win2K. Says "App requires Win2K or greater", though I am definitely using Win2K SP4.

Created xplorer2_portable.exe on WinXP and run. This time, I uninstalled xplorer2lite completely and ran from scratch. That did the trick. It works beautifully. xplorer2_portable.exe works on Win2K as well.

Excellent job! Thanks!

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

#93 Post by redllar »

Andrew Lee wrote:Just tried the latest build. It still doesn't run on Win2K. Says "App requires Win2K or greater", though I am definitely using Win2K SP4.
My fault - late night coding bug. Try this one (exe only.)
Andrew Lee wrote:Created xplorer2_portable.exe on WinXP and run. This time, I uninstalled xplorer2lite completely and ran from scratch. That did the trick. It works beautifully. xplorer2_portable.exe works on Win2K as well.

Excellent job! Thanks!
Great news. Thanks.

@portable-freak, Glad to hear things worked out with the dll in place. I'm looking into a way to make the path to the dll relative so that we only have to put one copy of it on a usb stick. I also have started work on a version of PP that speeds things up by using an in-memory ini.

User avatar
nycjv321
Posts: 181
Joined: Wed Feb 15, 2006 12:42 pm

#94 Post by nycjv321 »

Test...
ccleaner i tested it out for fun to see if it work and to answer my qeustion to see if it also picks up a app trying to register a dll. I tried creating a portable exe and worked but wouldnt run I waited like 3 mins and nothin opened I then tried just running it from portaPotty strangly enough it still made the portaPotty ini file that was 10kb in size? but the nothin happened agian
Test...
Universal Extractor
I then tryied this app since I am always using,so i decieded to test it, it ran through portaPotty and picked up settings created by it and the applications it uses(e.g. PEiD.exe) ! yay! but wouldnt create _portable.exe
i then tried uncompressing it since(and since you said portaPotty cant work with compressed apps) all autoit apps are compressed with upx but portapotty still wouldnt create the exe even after upx -d, "couldnt see detours of app" well hope this helps
Test
Extract Now "http://www.extractnow.com/"
App is probobly the only freeware competitor to universal extractor
ran through portaPotty fine but wouldnt create _portable .exe since it checks for tampering sigh...

yea also something i found i tried this app for giggles
"http://www.snapfiles.com/reviews/Homela ... ndsec.html" it as the link says shows you the u.s.'s current security status (lol)
it worked completely picked up settings and created portable exe but i also found you can compress the new _portable exe and it works fine!
I used packman to compress which is already in the database and i used the lzma compression algarithim

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

#95 Post by Fluffy »

Just thought I'd let everyone know that RocketDock works perfectly with PP, portable .exe and all. Though it'd be nice if it stored everything with relative paths, it's still pretty neat.

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

#96 Post by redllar »

@nycjv321: Thanks for the tests. I've started building a list so I'll add these new ones to it. I have ccleaner here so I'll check it out. You might want to try the "Build exe even if it may not run" PP option on the unpacked UE exe. Sometimes that works.

Packman uses lzma to compress exes? I'll have to try it. Thanks for the heads up. I plan on adding an "uncompress exe when necessary" option when building a portable. I plan on adding a "compress portable" option as well. But it'd really be cool if there were a way to pack the PP dll in with the portable exe, making it all one package (maybe even the ini as well.) I seem to remember something that did that. Would that be packman?

@Fluffy: Thanks for the note on RocketDock. I added some code to PP today to get it to redirect any file system access from the current user's profile, e.g., "C:\Documents and Settings\username," into subdirectories off of the exe's directory. Things seem to be working fine, although I have work to do with Scorched3D since it starts another copy of itself when you play the game. I think I should be able to use the same technique to change fixed paths to relative paths for portable device use. I have RocketDock so I'll take a look at what it's doing and see if I can't come up with some scheme to make it work "relatively" painlessly.

@All: Do any of you have any "basic" apps to suggest for file access testing, especially ones writing stuff to any of the "documents and settings" subdirectories.

Also, I've been thinking about settings for both the launcher and the dll. I hope to present a list soon of the ideas I have, but I would appreciate it if you all would give it some thought and be ready with suggestions of your own. Or go ahead and suggest them as you think of them. :)

And it appears that the XP loader has no problem with relative paths for dll references, which means that a "build relative portable" option will be available so that only one copy of the PP dll needs be stored on a portable device.

Finally, first attempts at speeding things up are yielding a noticeable difference for some apps, but I'm having problems again with Future Pinball. So I'm going to test a bit more and if I can't find the problem I'll go ahead and upload a version without the in-memory ini use and one with it, but noting the problems. Probably Friday.

One last note. I occasionally and accidentally launch (via double-click) an exe that I'm attempting to drag-n-drop to the PP exe or window. If you're like me, you'll be happy to know that it's okay to rename those exes to some other extension, like app.exe.noRun. PP will still run them even though your file manager probably won't.

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

#97 Post by Fluffy »

Here's a new idea for the name: Registry on a Stick. Too bad the poll's already been made...

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

#98 Post by Andrew Lee »

My fault - late night coding bug. Try this one (exe only.)
No worries! Work perfectly on Win2K as well now.
But it'd really be cool if there were a way to pack the PP dll in with the portable exe, making it all one package (maybe even the ini as well.) I seem to remember something that did that. Would that be packman?
From memory, nBinder does that. Unfortunately, it has gone crippleware. I don't think packman has this option.
Do any of you have any "basic" apps to suggest for file access testing, especially ones writing stuff to any of the "documents and settings" subdirectories.
Some suggestions:

- SkiFree (writes high score to C:\WiNDOWS)
- OrphansRemover (writes settings to user profile folder)
- wikidPad (writes settings to user profile folder)
- Hott Notes (writes settings to user profile folder)

portable-freak
Posts: 57
Joined: Sat Jul 08, 2006 8:39 am

#99 Post by portable-freak »

redllar wrote: Packman uses lzma to compress exes? I'll have to try it. Thanks for the heads up. I plan on adding an "uncompress exe when necessary" option when building a portable. I plan on adding a "compress portable" option as well. But it'd really be cool if there were a way to pack the PP dll in with the portable exe, making it all one package (maybe even the ini as well.) I seem to remember something that did that. Would that be packman?
Thinstall, MoleBox do but some dough required, ey ;)
But seriously, I don't know if Packman does, nothing special comes across my mind for the time being.
redllar wrote: I added some code to PP today to get it to redirect any file system access from the current user's profile, e.g., "C:\Documents and Settings\username," into subdirectories off of the exe's directory. Things seem to be working fine
Brilliant! I was about to ask you if that was possible :)
redllar wrote: Finally, first attempts at speeding things up are yielding a noticeable difference for some apps, but I'm having problems again with Future Pinball. So I'm going to test a bit more and if I can't find the problem I'll go ahead and upload a version without the in-memory ini use and one with it, but noting the problems. Probably Friday.
Damn, it's still Thursday :P

Excellent work, thanks for the efforts redllar!

User avatar
nycjv321
Posts: 181
Joined: Wed Feb 15, 2006 12:42 pm

#100 Post by nycjv321 »

redllar i dont think packman can compress to PE files in to one i do know that packman can either compress using lzma or aplib(i think thats how you spell it) aplib is better for small exe's since it doesnt use memory for decompression and lzma has a usally has a better compression ratio but uses more memory :( it cant compress deplhi like portaPotty doesnt work on delphi. and it cant decompress its compressed apps either :( for decompressing as u already know upx is the best way to go:) i used packman usally over upx since lzma is usally better the algarithem upx uses and the gui is much more cool looking ;)
aplib sometimes compresses better then both! or lzma it depends on the exe you are trying to compress i aslo tried "build exe even though it might not run" and that does work for any exe but also just crashes the app :(

since fluffy tried rocket dock which is acool app by the way i tried rklaucher! it worked ececellent!
i just tested just for testing it i think that running a dock portable is a waste since docks are usally memory hogs. )



as for making everything into one exe heres an idea just an idea not a recomandion
http://www.portasoft.org/e107/page.php?18 <-code here and app here
http://www.portasoft.org/e107/download.php?view.14 <-app here

its filezilla compressed into one exe its just an idea!
the code is based on nsis and since nsis is based on assembly and assembly is a little similiar to c++ you can mess with around with it being the aswome coder you are i thought i would sho you this to try and help with packeding into one exe and all...

and if you really want good compressions i would check out winupack
http://www.portablefreeware.com/forums/ ... .php?t=422
uses alot more memory to decompress but compresses better almost every time!

and you said you can now redirect files! omg!!! woot
so now does it pick up any type of settings or just registry and %appdata% what about %userprofile% and also all user's data since theres also application data folder in all users section

well i g2g ill try to post later tonight on more stuff i find
ok just trying to help the little bit i can!
Last edited by nycjv321 on Thu Aug 17, 2006 11:21 am, edited 1 time in total.

User avatar
nycjv321
Posts: 181
Joined: Wed Feb 15, 2006 12:42 pm

ok

#101 Post by nycjv321 »

redllar...
ok
i know that
siw writes settings to appdata if settings are changed
so do firefox or opera <---just for laughs lets see if it actually works?
and question that has probly arready answered
can portaPotty pick up a app trying to registry dlls (e.g. ccleaner)
and can it run a app portably and catch that apps that that app runs (e.g. universal extractor relies on about 20 other apps to run and extract all the formats that it supports and as i already said that it worked like a charm pickeing up all settings made by uniextractor and the apps it uses
will portaPotty always work like this? And also will portaPotty (the new one you are testing) pick up any form of settings or just registry / current user appdata / userprofile (e.g. Abiword) /settings in other locations (e.g. xpsyspad settings stored in C:\windows\xpsyspad.ini.| or will it pick up any type of settings like local machine application data and anywhere else ?
and as for foxit im useing the newest build which supports portabilizing it and it wont work even with "build even if it might now work"? what im i doing wrong im using xp with no service packages

dyce
Posts: 7
Joined: Mon May 29, 2006 7:00 pm

#102 Post by dyce »

redllar, you are doing a very great job. your program is almost like thinstall, except the comercial stuff about it. the next thing you may also want to do is remove the need for dependencies, if the app looks for something in the windows directory, it will look in its directory, and all the dlls will be there that it needs. but one question, does this all work on guest accounts? does your app actually write to the registry? because guest accounts deny access to registry.

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

#103 Post by redllar »

Andrew Lee wrote:No worries! Work perfectly on Win2K as well now.
Good to hear.
Andrew Lee wrote:From memory, nBinder does that. Unfortunately, it has gone crippleware. I don't think packman has this option.
nBinder's the one I was thinking of. Oh well.
Andrew Lee wrote:Some suggestions:

- SkiFree (writes high score to C:\WiNDOWS)
- OrphansRemover (writes settings to user profile folder)
- wikidPad (writes settings to user profile folder)
- Hott Notes (writes settings to user profile folder)
Thanks. I'll give them a run through when I can.

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

#104 Post by redllar »

portable-freak, thanks for the info and kind words.

nycjv321, thanks for the info on PE packers and the links. Looks like stuff to look at once I get all of this other stuff worked out.
nycjv321 wrote:can portaPotty pick up a app trying to registry dlls... and can it run a app portably and catch that apps that that app runs.
Yes, this new version should be able to, at least in theory. I've only tested it on Scorched3D so far, but it worked w/o problems (Scorched3D launches another copy of itself to run the actual game.)
nycjv321 wrote:so now does it pick up any type of settings or just registry and %appdata% what about %profile% and also all user's data since theres also application data folder in all users section... And also will portaPotty (the new one you are testing) pick up any form of settings or just registry / current user appdata / userprofile (e.g. Abiword) /settings in other locations (e.g. xpsyspad settings stored in C:\windows\xpsyspad.ini.
This new PP treats file system access in a manner similar to the way the registry access works. For instance, the first time you start Scorched3D, it creates a directory in %profile% called ".scorched3d". Before that can be done, PP strips off the %profile% front end part of that path, takes what's left over (the ".scorched3d" part), tacks that onto the end of the app's directory, and then lets the directory creation request go on through. So the app thinks it's creating %profile%\.scorched3d when in fact it creates .scorched3d in its own directory. Then the app creates a %profile%\.scorched3d\display.xml file. PP does the same thing again, effectively redirecting the file into the app directory's .scorched3d subdirectory. Ditto for anything else created or written to %profile%\.scorched3d. And when the app opens the %profile%\.scorched3d\display.xml file, PP changes that to a request to open up the real file that exists in the app directory's .scorched3d subdirectory.

This new PP does this sort of thing by default for all "known system directories" (admintools, appdata, bitbucket (recycle bin), cdburnarea (include this by default?), cookies, desktop, favorites, fonts, history, internet cache, mymusic, mypictures, myvideo, nethood, printhood, profile, profiles, programfiles, programs, recent, sendto, startmenu, startup, system, templates, windows, and any local (nonroaming) or common (alluser) or alt (nonlocalized) equivalents), although I've only tested this with Scorched3D and it only wrote to profile.

The catch to all of this is it won't work for all types of apps. For instance, you'll want a system cleaner app (deletes cookies, history, recycle bin files, etc.) to be able to delete files in those directories. So we need a way to specify on a per app basis exactly what directories and/or files it is allowed to muck with; something like an ini exclusion list, for instance.
nycjv321 wrote:or will it pick up any type of settings like local machine application data and anywhere else ?
Here's an example of what I think you're asking: You start a portablized text editor, open up a text file in "My Documents", modify it and then save it. By default that modified file would be written to a "My Documents" subdirectory in the app's directory, leaving the original untouched. But, if you open up a text file in "C:\SomeFolder", modify it and then save it, PP will not redirect that file to the app's directory because that directory is not a "known system directory". However, it would be a simple matter to have PP redirect file mods for that directory as well. All we need is some mechanism (an ini inclusion list?) to specify what additional directories we want redirected for that particular app.
nycjv321 wrote:and as for foxit im useing the newest build which supports portabilizing it and it wont work even with "build even if it might now work"? what im i doing wrong im using xp with no service packages
I just tried Foxit Reader (v1.3 build 1621) here (XP Home SP2) and it works fine with just the normal PP build option. Are you sure that all of the app's system registry entries are gone? How does the app fail? Is it creating any ini entries? Did you try deleting or renaming the ini and then running the app? Did you try the logging version I posted a link to earlier? That's about all I can think of because "it wont work" really doesn't tell me anything useful.

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

#105 Post by redllar »

dyce wrote:redllar, you are doing a very great job. your program is almost like thinstall, except the comercial stuff about it. the next thing you may also want to do is remove the need for dependencies, if the app looks for something in the windows directory, it will look in its directory, and all the dlls will be there that it needs. but one question, does this all work on guest accounts? does your app actually write to the registry? because guest accounts deny access to registry.
Thanks for the kind words and the thoughts about dll dependencies. I would hope that running the app's setup via PP would get you all of the "special" dlls put into the app's directory, but there definitely could be others missing that the app dev assumes are there (I know I assume the user will go download gdiplus for 2K use, for instance.)

I don't know if this all works on guest accounts. Another good thing to try out. Neither the PP exe nor the dll write to the registry. And the dll does not allow any app-requested registry write or delete (that it sees) to be processed as such. But I have noticed during log reviews that a very few key handles show up that the PP dll did not create, meaning that there's some internal Windows system dll registry accesses going on that the PP dll does not see. It's possible that those keys are used to modify the registry.

Post Reply