This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.
This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.
Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.
Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.
You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.
Please do not email me about this project without reading the disclaimer above.
If you buy a new machine, you can spend days reinstalling all your old software and trying to reintegrate your old data. If your C: drive gets full, it is almost impossible to safely move some applications to a drive with more free space.
Microsoft has deliberately made this project intractable. The Registry is their prime weapon.
Your first task is to watch what your application does during install. You will need a file monitor and a registry monitor to see what files the installer creates/changes and what registry changes it makes.
Now run the application program for a while exercising its various functions. Watch what additional changes it makes to disk files and registry entries. Watch where it hides all its data files.
Now uninstall and install on a different drive and directory name. Notice the differences in what it does. The drive letter and the directory name will become embedded in many places. Reinstall for a different user.
Now write a program to capture all the program files into a directory tree for backup, and all the common data files into another and the per-user data files in another. Also export the registry entries to a file for backup.
Now write a program that prompts the user for the new drives and directories where all this stuff is supposed to go. Your program then patches files in the directory tree as necessary and copies them into place. and pokes the registry with the necessary entries.
If you want to move the program to a new drive on your same machine, you uninstall the application, then run your restore.
If you want to move the program to a new computer, you point your restore program at the backup CD/DVD (Compact Disc/Digital Video Disc), or at the file tree restored to disk and tell it to restore, copying all the files into place.
To do this ethically, you should not support any sort of change to the branding keys during the reinstall, particularly ones that lock the software to a particular CPU (Central Processing Unit) serial number. I think though it perfectly ethical to try to crack any scheme that locks software onto a particular drive.
Linux users may be puzzled what the fuss is about. To move an application in Linux, you just copy the files. Once you have written a sufficiently large suite of reinstallers, this task should be almost as easy for Windows.
Consider the huge expense this software could save businesses every time they upgrade their computers, not to mention the usual loss of data and programs that the typical home user experiences on buying a new computer or hard disk.
Your program could also be used in corporate environments for rapidly bulk installing software based on a script of the needed packages. Every install works the same way, unattended, no matter who the original vendor and hence can be more easily automated, customised and centrally controlled.
This page is posted
Optional Replicator mirror
Your face IP:[22.214.171.124]
You are visitor number|