Для этих целей у меня есть программа MInstAll Дмитрия Малгина, http://checkdevice.narod.ru , которая очень удобна для этих целей и проста для любого пользователя.
Благодаря нестандартной переменной {Patch} запуск программ не зависит от буквы диска носителя что делает процесс добавления собственных программ простым.
Лучший вариант, на мой взгляд, это упаковать программу в SFX архив, так сделано у меня. При этом при запуске программа распаковывается на RAM диск, запускается, и по завершении работы папка с программой удаляется, вновь освобождая место на RAM диске.
Можно конечно и не упаковывать, а добавить просто папку с портабельной программой на флешку. Плюс в этом варианте в том что настройки программы (если они конечно сохраняются в папке с программой а не в реестре) сохраняются. Минус, надо учитывать что скорость работы программы будет намного ниже ( зависит от носителя, USB 2 или 3, а так же естественно не все программы будут работать с CD диска, если еще кто то с него грузится конечно, так как он только для чтения) так как работа любой программы в памяти самая быстрая.
Как создать SFX архив? Есть специализированный сайт где есть вся информация и необходимые файлы по данной теме http://7zsfx.info/ru/
Но я покажу еще наглядно на примере например программы Аida64. Упаковываем все файлы программы архиватом 7 zip в архив, под именем - Archive
Как добавить свои программы на флешку
Созданный архив помещаем в папку с SFX модулем и файлом конфигурации. Вот например мои файлы что я использовал для этого архива http://rghost.ru/57497685
Файл конфигурации в данном случае можно использовать двух видов.
Первый: программа распаковывается во временную папку, запускается и по закрытии программы удаляется
;!@Install@!UTF-8!
RunProgram="aida64.exe"
GUIMode="2"
;!@InstallEnd@!
Второй: программа распаковыается в указанную папку, запускается и по закрытии программы удаляется. Этот вариант, к примеру к программам которые имеют привязку к реестру.
;!@Install@!UTF-8!
InstallPath="%ProgramFiles%\\aida64"
GUIMode="2"
RunProgram="aida64.exe"
Delete="%ProgramFiles%\\aida64"
;!@InstallEnd@!
В строке RunProgram должен быть указан исполняемый файл программы.
Далее просто с данной папки выполняем в командной строке команду
COPY /b 7ZSD_LZMA.sfx + config.txt + Archive.7z "aida64.exe"
И там появится тот самый готовый SFX архив
Далее кладем его в папку на флешке MInst\Portable
Запускаем программу MInst, выбираем профиль Запуск программ с USB (или можно создать любой свой новый профиль) и нажимаем значек справа там со скрещенными молотками.
Откроется режим настройки. Там нажимаем значек + , то есть добавить
Откроется окно, указываем путь к программе, то есть в данном случае к нашему SFX архиву aida64.exe в папке MInst\Portable. Переменная {Patch} как видете подставляется сама.
Заполняем все другие поля, Название, Описание, Путь к иконке и т.д....
И в конце сохраняем все эти настройки и Готово!