Introduction:Often, somebody will make a post asking for help. I wrote up a guide real quick for this poster, here. After a suggestion by r-andom, I re-posted as a forum topic. If you have a suggestion for the guide, post here. If you need help portablizing, make a new post in the Portable App Development Forum. So, without much more text, I loose the gorilla. . .
- Use the search box to find out if someone's done the work or some of the work for you. Search PortableApps.com.
- Become familiar with the launchers available. For instance:
- X-Chat Portable redirects the Path, and GTK directories.
- Notepad++ Portable Moves files and then adjusts them so that any open files from your flash drive will now open on your new host.
- 7-Zip Portable deals with the registry entries made by 7-zip.
- PNotes Portable Passes a command line variable to the program.
- Determine the license. Is it OSS or another type of license? If its Open Source Software, you can post all of the launcher and the program on the forums. Since PortableApps.com is dedicated to OpenSource software, its against the forum rules to post a piece of software that contains closed source (even if you are allowed to redistribute) software. If its closed source, well, you can post a launcher, similar to what I've done here, only. Why is this first? Well, you have to decide if its worth the work.
- Determine the programing language. Why? Well, you have to be careful. Is it done in:
- .Net? Sorry. While some don't care, alot of people here despise .Net, as its not installed on all computers. See this link For a whole discussion on the subject of .Net.
- Java? As I understand there's the Java Portablizer, but there is not yet an Open Source JRE. So use of Java applications is somehow limited.
You can study the following application to get an idea of portable Java implementation.
- Get the tools. Load up- you'll need them.
- I whole heartedly suggest the use of HM NIS Edit (Portable) Select either the download with NSIS included, if you don't intend to download it separately, or without if you do. It adjusts properly in both occasions.
- Note also if you wish to use another editor, you can download a portable version of NSIS separately, from here.
- Regshot. which is used to figure out what changes a program made during the install process.
- Alternately, you can use Process Monitor to figure out what registry entries its reading.
- NirSoft RegfromApp is a small freeware utility that allows you to specify a specific process to monitor. You can even launch a process with it and monitor those specifically. It produces a nicer output of what registry entries the program has modified.
- I also suggest picking up Notepad ++ Portable. Just in case.
- To handle making the icons, use something like IcoFx
- Do your research. Read up on these topics in the forums:
Feel your head is about to explode? Mine to, writing all this html. There's more
- Download your program. If you have keyboard loggers, malware protection or anything that runs in the background, consider turning them off before taking a regshot. Now, fire up regshot and take a regshot of the computer by scanning the C drive, more on that in a minute, before installation. Go have a cup of coffee or a can of Mountain Dew. Don't touch the computer! You'll get extra registry entries.
- Install your program and run it a couple of times. Make sure you do this from a clean install. If you don't, you may have skewed results. Do NOTHING else during this time
- Take second regshot and then compare the results. Save it a html, it produces a nicer printout then .txt
- Figure out where the program is saving files. Check C:/Documents and Settings/UserName/Application Data for %appdata%. If you scan the entire C:\ Drive with regshot, those changes should show up.
- What to do with registry entries:
- HKCU:Regshot will show a HCKU modification as HKU\Random Numbers\whatever. Look for those in HKCU\Software\ and handle them in NSIS as
HKEY_CURRENT_USER\Software\Whatever
.- Useful Entry:
HKU\S-1-5-21-1060284298-823518204-725345543-1003\Software\Texas Instruments\TI Connect\StartUp\
. - Useless: HKU\S-1-5-21-1060284298-823518204-725345543-1003\Software\Microsoft\Windows\ShellNoRoam\MUICache
- Useful Entry:
- HKLM:HKLM is a branch of the registry that cannot be modified by someone with a Limited account- just an Administrator. Handle them by double checking that they are needed. Often, something like InstallDir: whatever can be ignored. Else-if those entries really really are needed, you will need to check that the launcher can do it, then launch the software. If you don't have the rights, you'll use a message box to say so and terminate the launcher. Handle them in NSIS as
HKEY_LOCAL_MACHINE\Software\whatever
- HKU: You can ignore these.
Well, that about sums it up.
More General Help
Open Source Software is generally found at SourceForge
You can get general help here
If you have any specific questions, give post, and we'll be happy to help.
You can also join us at #portableapps on irc.freenode.net. You'll need a IRC client. You can use X-Chat, Pidgin, or Miranda. Helpful hints are here. Don't want to download a full blown IRC client? Well, I'm sure you will eventually, but here's a web based IRC client that's fast.
Thanks to . . .
r-andom, for his blurb on java\
MaienM and Bart.S for letting me know about those pesky updates
Changelog
- 10SEP08
- Updated a few spelling issues
- Added NirSoft RegfromApp
- Updated link to installer thread
- Changed up the way registry was talked about, added examples
- Add NSIS Portable to the Tools List
- Add examples of Portable Java implementation
- Update links to the PA.com format, Installer
- Update link to NSIS Portable
Good work!
This post answers a lot of the repeating questions in this forum. Can a moderator please make this sticky?
(you may delete my comment afterwards.)
That is a freakin' awesome tut!
Sticky it!
It even inspired me to start and try to make a portable app (unfortunately I am lazy and it may not happen ).
Very good tut Oliver.
Blue is everything.
Sticky it!
This is great!
Great write up Oliver. This should help out quite a bit.
The developer formerly known as ZGitRDun8705
Now as soon as I film my hand plugging in my new flash drive (which is supposed to come today! AAH!!! I CAN'T ENDURE IT MUCH LONGER!!!!!), I'll get started on a video with some cool music.
Insert original signature here with Greasemonkey Script.
This is awesome! It's totally perfect for newbies for portabalizing apps (like me) or just a great reference.
Thanks for writin' this up!
There's no place like 127.0.0.1
It's nice to get people mentioning/using it
I believe that .Net is .Net, not .net.
I find HM NIS Edit good for gooey stuff :P, but not for code editing. I use GVim for pretty much all coding I ever do. (/me presses escape, :w, enter - save, for you people that don't use [G]Vi[m] :P)
Also, X-Chat is X-Chat, not XChat (as you list it in your first link). My understanding is that there was a problem with X-Chat, and some crazy guy illegally sold fixed copies of it as XChat, with closed source components, etc., violating the GPL. Ask Patrick for more details.
Another thing: SourceForge, not Source Forge.
Oh, and Notepad++, not Notepad ++
One last thing: the search PortableApps.com link should point to https://portableapps.com/search/node, not https://portableapps.com/search... it doesn't really matter, but I like picking nits
Why is this so fun..?
STOP SUBMIT! (Somewhat like stop press?) You have an "its" without an apostrophe between the t and the s, where there should be one, because it is an abbreviation of "it is"!
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
no prob on the mibbit. Your right about those errors. I'll fix them when I get a better connection.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
I'm a big proponent of offering people guidance so that they can jump in and help where they can!
But I have a serious question:
What are steps 15, 16, etc?
That is, once an app has been portablized and makes it into the Beta Testing Forum, how does it achieve the last steps to become a final release Portable App?
What rights and responsibilities does the original (unofficial?) developer have to keep moving the app's development forward? How much testing is enough?
By a rough count, there are ~110 apps listed in the Development Test Releases on the Test Release page, some of which are out of date compared to their parent app. Meanwhile, most of the releases are just new versions of existing apps.
Is their anything that us non-devs can do to help the process - perhaps if we knew what kind of feedback is expected when we beta test? Any tips from experienced testers to help in stressing apps, forcing out bugs, etc?
Thanks again to all the devs out there for making PortableApps such a great site.
I made this half-pony, half-monkey monster to please you.
Well, I wasn't to worried about 15 and 16. Basically, it'll sit in the forums for awhile.
When you become a developer, you need to support your app for 1-2 years (I believe it was).
When testing, you need to:
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Are devs waiting for a certain amount of positive (no bugs) feedback before release? I don't know how often satisfied beta testers communicate back to the devs...
When you say that a developer needs to support the app for 1-2 years, is that after it has reached Release status, or throughout the pre-release too?
I made this half-pony, half-monkey monster to please you.
I don't know. It when John decides its ready. How that works, I haven't the foggiest.
Actualy, I was wrong. Its a 6 month support after release.
Here's what John wants.
https://portableapps.com/node/11772
I'm guessing, when you thinks its ready you post here, and John takes a look and says yeah or nay.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
@John T Haller:
Is there anyway you could make this sticky or tell me what you would want added to make it a sticky?
Thanks.
*EDIT*
UPDATED 22AUG08
Some info on RegHandling
Added IcoFx link
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Wow. Thanks OliverK. Your guide has convinced me that I just may be able to do this after all.
A suggestion...
Somewhere around step 7 you may want to recommend turning off or killing background processes before doing your Regshots. Folk running on-access malware scanners, defraggers, keyboard monitors, etc. may find themselves having to wade through a fair amount of registry garbage in order to find the relevant entries. (Though I guess if you run in a "development" image or sandbox this wouldn't be necessary.)
Anyway, thanks again.
you are actually thinking about Process Monitor.
It tracks every file and registry handle from a given program.
Insert original signature here with Greasemonkey Script.
Yes, at which point you can filter it.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
I actually meant RegShot. I'm running VIPRE, Sunbelt's new A/V + A/S, and it's on-access scanner peppers the registry with newly created and deleted values. PerfectDisk drops a few in too. Not really a big deal since RegShot's html report makes it easy to see the changes that really matter. Just caught my eye.
Godd suggestion. I'll add it.
And . . . your welcome!
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
great job Oliver, we've been needing something like this for a while.
[EDIT: In regards to #2, maybe you should add Eraser Portable for dealing with HKLM entries that need special permissions. I've seen a lot of people using the 7-zip method for HKLM.]
That's a good point. Thing about EraserPortable is that it doesn't actually need them. I'll tack in a note that HKLM keys are dealt with differently.
I deal with them by checking for admin rights. If the user doesn't have them, we go no farther.
I'm also play with this little toy: Nirsoft RegFromApp. Its not open source, but really slick. You fire it up, then select the process to run. It captures those keys-and you can save them. It displays them in the program. Everything that that program uses, it shows. I'm thinking of adding it to the top.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Now I'm really thinking about making my own portable apps
Some things:
you're right.
this should be:
HKCU\RandomNumbers\whatever
Most stuff stores info here
HKU can be ignored.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Actually, HKU\RandomNumbers\something is worth looking for, then just replace HKU\RandomNumbers\ with HKCU\
There is no HKCU\RandomNumbers\ key
The developer formerly known as ZGitRDun8705
HKU\Random Numbers\whatever is worth looking for, because there is no HKCU\RandomNumbers\whatever.
Right, but HKU\whatever can be ignored. Well, I'm still confused
HKU\RandumNumbers\ = HKCU\
If you use RegShot to look for which reg keys are modified, it will show them all under HKU\RandomNumbers\, but this key is unique to the PC. HKCU is universal. All instances of HKU\RandomNumbers\ should be replaced with HKCU\
The developer formerly known as ZGitRDun8705
I understand. But then I shouldn't ignore HKU in Regshot, at least partially
@ Oliver: Thanks for the examples!
Correct, don't ignore HKU in RegShot. unless it's something like Oliver said.
The developer formerly known as ZGitRDun8705
A tool that might help in the monitoring of application would be Sandboxie. When a program is executed in the sandbox, all the modifications made by the application to the system are contained in the sandbox folder, as well as all the registry entries.
True, but I don't know how to use SandBoxie and prefer that I list portableapps when possible
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
I don't understand after step 11.
What is the launcher?
Compile What? How?
The launcher is the file called AppNamePortable.nsi in Other\Source. You compile it by downloading NSIS and the loading that file into what is called the compiler. Minute latter, you have a standalone executable.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Nice! But you should also mention having:
A) the app or
B) the installer
in a .ZIP or .RAR .
theg721
They're meant to be put in the .paf.exe format at the end (made by compiling the installer). If they're in ZIP or RAR or anything like that, they're not in the PortableApps.com™ Format.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
You might mention in your Java section that BabilooPortable (dev test) is an example that shows one way to launch a Java "jar" file while redirecting it to save settings to the Portable Drive by using the
command line option to javaw.exe.
Many programs can be set up to use a Java Virtual Machine or Java Runtime Environment that has been copied to the Portable Drive. While we can't easily distribute such a JVM/JRE ourselves, there is nothing that prevents a person from putting Sun's JVM/JRE on their Portable Drive and taking it with them.
Also note that some programs (e.g. Firefox) wouldn't use an OSS JVM/JRE even if we had one, at least not without changes. They access Java in a non-Portable way. I'd say that is the real problem with carrying your JVM/JRE with you, or with our trying to have a universal, OSS, portable Java.
MC
how about the inclusion of NSISPortable to the tools list so that users who don't want to install NSIS locally could use this as an alternative
your friendly neighbourhood moderator Zach Thibeau
Create a video-instruction please (training video).
Creating a video instruction would be some what difficult. I've attempted the videos, but never quite got them to satisfaction.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Done
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Hey guys try using this video
gr8 video
so simple
http://www.5min.com/Video/How-To-Make-Portable-Applications-For-Free-914...
Maturnuwun sederek sedoyo,, meniko manfaat sanget kadose. senajan kulo nggeh mboten ngertos
May I use MS Visual Basic 4 (or 6) to make portable app?
It is not a .Net version of VB!
Thanks
certainly
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Does any 1 no any C++ compilers!
high explosives and electricity yay!
There's no need for any C++ compiler. Additionally, if you don't know about C++ compilers, it's unlikely that one would be of any use to you.
To respond to your question though, MinGW compiles C++ code.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
Help and guides want you to have it up to read the translation.
도움말이나 가이드 정도는 번역한 글을 올려줬으면 좋겠습니다.
You are viewing the page through Google Translate.
But does not really understand.
현재 페이지를 구글번역을 통해 보고 있습니다.
그런데 이해가 되질 않습니다.
i have been wondering how everyone makes these wonderful apps i use everyday. now i might be able to make myself one now lol. That's if i can figure out how to do it exactly. Because i have no experience with scripting at all or anything.
Anyone got any tips just xfire me or post it here
Also im having issues getting x-chat from the link above y is this? Is there another way i can get that program or is there a newer way of making portable apps
I also saw a post about someone wanted a copy of the walk through so i edited some of the html on this page and made this:
http://docs.google.com/View?id=dccw2b6_4hpcmn7ff
Right click and save link and after the name of the file add .html and select the scroll menu and put all files. That's if u want to have a copy on hand all the times.
~(edited using notepad)
~(quoted from Creating A Portable App: A Guerrilla Field Guide
Submitted by OliverK on July 31, 2008 - 8:42pm)
Dalton M. Kadar
(Don't Mind Me I'm A Noob)
noobie here...i could just figure this out thru trial and error..but, can i create portables within a virtual pc? thanx for reply...
hi everybody.
Yes, you may use Virtual PC to create a environment for testing and developing an application to portable.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Now that we have java portable you might want to change this guide to reflect that Also, the links to the format specification and the installer are outdated.
Other than that, still an great guide.
Behold, the DutchLander has arrived.
Grammatical errors are copyrighted.
Hi Oliver,
you might want to change the link to NSIS Portable too. It's official
Well, keep up your work on this great guide.
updated Thanks for letting me know. You to, MaienM
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
for mentioning my Dia Portable, but it isn't a Java app.
It's GTK.
Fine, I'll take it out. I thought it was though. I guess I didn't read my search well enough.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Don't forget to update this to include the new freeware apps.
Simplifying daily life through technology
yeah, I'll have to update that somehow. I'm rather swamped with RFL right now, but I will try to work on it. I gotta give out ta seal on eclipse on and fix screamer so hoepfully I can get another release.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Are there any tools are guide to automate this process from zulog files generated by ZiSoft's Uninstaller?
not that I'm aware of at this time
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Thinapp/Thinstall
are there any tools simmilar to this that can create just a single .exe rather than a large .dat + small .exe ..
I dont know any programming [tried bbc basic ...many moons ago...but was useless].
So My chances of using multiple programs and learning programming skills are slim..I realise many will enjoy this process, but I was looking for somthing simpler.
Appreciate the Site..introduced me to portables...so usefull.
ThinApp is almost never used legally - to even use it personally legally you've got to fork out thousands of dollars.
There is no free equivalent. It has to be coded manually.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
thanks for the speedy reply...
Looks like I have a lot of "Homework" and stuff to read up...
I found portables really usefull recently as I am at College learning Interactive Media and use several PC's and software packages during My week.
Are there any other good Sources of Research Material that you can think of which would assist?? (I have no programming skills..but am learning actionscript at present.. so I would need to learn some more stuff first!!)
Many thanx
Alrighyt; I read the tutorial followed it step by step and then steps 11 on loose me completely. Can someone elaborate further please?
Specifically on what to do and how to do it.
step 11 explains what registry entries you need to worry about. From there, you'll need to understand what tool you are using enough to take care of those entries.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
Currently, the official position seems to be to use the newly released PortableApps Launcher here:
https://portableapps.com/apps/development/portableapps.com_launcher
It is still important to know what registry keys are created or maintained by the unmodified app, and that's where step 11 is still important.
Regshot is an app that helps you figure out what changes your app makes to the registry during install and use. Specifically, it takes a snapshot of the contents of the entire registry before the app gets installed. Then, you install and use the app, and then Regshot takes another snapshot, and compares them to see what was added or changed.
You still need this information, but with the new PortableApps Launcher, you don't need to code NSIS to deal with the registry, it is done with a simpler INI file.
Check it out, and if you get stuck, you can make a post with the specific issues, or you can go to the chat room here:
https://portableapps.com/support/chat
If you are lucky, you can get there when Chris Morgan is there, he's the author and expert for the launcher.
I made this half-pony, half-monkey monster to please you.
This guide is not about launcher or languages or whatever. It simply tries to explain what is needed for a app to be portable.
As for the predominance of NSIS coding information, this page was written at a time when NSIS was used, not PAL. NSIS apps still out number PAL apps. This is why there's alot of info on getting setup for writing NSIS. It however does not explain exactly how to write the code (I probably never got to it).
This page is still relevant today for the reason that it still explains how to check the portablility of an application, what needs to happen for it to be portable and a little bit more.
I would still recommend using NP++ if for no other reason then the syntax highlighting for INI files makes life easier.
Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world
I think that this isn't out of date per se, but there might be a need for a guide that combines the PAL with this guide (although the launcher docs are pretty good).
My Dev Tests: ~ KeePass Pro Portable (awaiting .NET directory) ~ FreeCol Portable (needs testers)
"... proving to everyone that we are operating on Valve Time..." - us
Thanks, OliverK, for this great guide.
It appears that most of what is presented would be useful for retrofitting software written by others that already exists into a portable app.
I would like to write a portable app of my own, mostly for my own personal software development edification. Rather than being a retrofit, I want to design it to be portable from the get-go.
With that in mind, what is the best answer for #4? What is the best, most portable-friendly programming language? (Please note: I have already scoured the forums for discussions about this, but haven't found a clearly definitive answer.) I do know that C# .NET (my normal pot-boiler modus operandi) is NOT the answer.
TIA
You can use C, C++, Python, Delphi (aka Visual Pascal), different toolkits (Qt, GTK, wxWidgets, etc). Just about anything along those lines. Shortly, we'll also be showing Java apps in the directory once we complete the discussions with Oracle.
Sometimes, the impossible can become possible, if you're awesome!
I'm going to give Python a try. Getting away from
MicroslothMicrosoft .NET (used in the day job) while still remaining object-oriented is a personal goal.Thanks for telling me about the toolkits too.
I have an idea for an app that would be both a great learning tool for me and a nice addition to someone's USB stick as a portable app. So, now I begin.
Thanks for your help!
There's an IDE that's very similar to Delphi, called Lazarus. It's based on OpenPascal, and has the benefit of being free and open source.
I made this half-pony, half-monkey monster to please you.
Please make a video tutorial on how to create a portable program
tinki441
I agree that making a video or detailed tutorial on how to make a portable application, using the Portable Apps launcher and respecting the specifications will be greatly appreciated.
Believe me when I said it's not luxury. I've been through your posts, help, templates and making an app portable looks like a gas factory.
I know it requires a bit of time, but it will save you a lot by avoiding to answer simple questions on the forum. Please help the noobs
I plan on making video tutorials eventually, as I requested them myself in my early days. I can't guarantee they'll be the official ones though.
Awesome, Any schedule on that, or it's just an idea? You don't have to make it nice and all.
Maybe you can make a simple article with all resources and step-by-step guide. I know it might take more time to write it. There's another possibility using some sort of screen-shot tuto, slideshare.net style
I can give you an hand if you need, but as I am a part of those who need the tuto...
Updating some of the links in Step 5....
Now I'm off to test out these instructions.
coooooool!!!
such greetings hello, I've seen videos on creating portable tutotiales with winrar, with IExpress, with autoplay media studio, with vwmare ThinApp, etc. but I think this product portables are better and the question is why? in any case I would like to see step by step with examples like creating a program eg cleaner portable thanks ...
I tried to create free Artweaver editor as portable as example.
1) I created appinfo.ini and created app folder inside of
\Program Files\Artweaver folder
2) I run PortableApps.comLauncherGenerator.exe
ArtweaverPortable.exe was created
3) I run PortableApps.comInstaller.exe
ArtweaverPortable_1.0.0.0.paf.exe was created.
4) I run it and installed all things in
\Program Files\ArtweaverPortable
5) I run
\Program Files\ArtweaverPortable\ArtweaverPortable.exe
I got message that not file app\Artweaver.exe
6) If I copy all Artweaver files to \ArtweaverPortable\app
it starts.
But I suspect it is not good example and works anyway without
registry reading
This explained a lot, i know that Virtual Box is open source and thought about "porting" the app to a pocket app. Tried the "portable app launcher generator." but that did not work ( either i use it improperly or wat.)
Now that i know more, i give it a try with these tools.