View previous topic :: View next topic |
Author |
Message |
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 03:28 Post subject: [Request] Портабельность программной сборки на основе Тотала |
|
|
Наверное, многие задумывались о портабельной работе своей сборки Тотала.
Сам по себе Тотал портабельный, но из него много чего запускается такого, что оставляет следы в реестре - в системном реестре, в каталогах с профилем пользователя. (в первую очередь речь идёт о программах, используемых в комплекте с Тоталом).
Мечта детства - это создание песочницы, автономной среды для работы. Чтобы на любом компьютере работать со своими собственными настройками, не засорять установленную ОС, а также иметь возможность перенести свои настройки с компьютера на компьютер.
Предполагается, что это будет некий плагин (наподобие Autorun), стартующий вместе с Тоталом, или же скорее подплагин для плагина Autorun или просто отдельная программа, которая будет запускаться через плагин Autorun и висеть всё время в памяти, выгружаясь после закрытия Тотала через тот же Autorun.
По аналогии с существующими реализациями - некая расширенная реализация kIT Portable Launcher/kitRun (исходники которого доступны), только с возможностью не запускать себя любимого с каждой программой, а с постоянным "висением" в памяти и перехватом дочерних процессов Тотала.
Сей плагин (назовём его плагином) будет постоянно висеть в памяти и следить за запускаемыми из-под Тотала программами, указанными пользователем в некоем файле настроек. Как правило, это те программы, которые находятся в одном каталоге с Тоталом, то есть включены в свою собственную сборку.
Процесс следующий:
Пользователь создаёт ini-файл, в котором указывает отслеживаемые программы, ключи реестра для каждой из программ и каталоги/файлы в каталоге с профилем пользователя.
Примерно вот так:
Code: | [Programs]
Prog_01=%commander_path%\exe\UltraTCEditors\Ultra TC Editors.exe
Prog_01_reg=[HKCU\Software\Ultra_TC_Editors]
Prog_01_reg_TC=%commander_path%\Settings\UltraTCEditors.reg
Prog_01_reg_orig=%commander_path%\Regs\UltraTCEditors_orig.reg
Prog_01_files=%$Local_Appdata%\SettingsDir\
Prog_01_files_TC=%commander_path%\Settings\SettingsDir\
Prog_01_reg_orig=%commander_path%\Settings\SettingsDir_orig\
Prog_02=...
..... |
Если запускается любая программа из-под Тотала (любая - включая запуск через внутренние ассоциации, через скрипты, напрямую ехе-файл запустить) - плагин проверяет, присутствует ли запускаемая программа в ключах Prog_хх.
Если не присутствует - программа запускается и работает.
Если присуствует - то перед запуском программы плагин перехватывает запуск программы и выгружает её текущие настройки (записи в реестре и записи в каталоге с профилем пользователя). То есть сохраняет значение ключа Prog_01_reg в файл Prog_01_reg_orig, содержимое каталога %$Local_Appdata%\SettingsDir\ - в каталог %commander_path%\Settings\SettingsDir_orig\
После чего в реестр вносится файл, указанный в ключе Prog_01_reg_TC и в каталог, указанный в ключе Prog_01_files копируется каталог, указанный в ключе Prog_01_files_TC.
Далее программа запускается и работает. А плагин неустанно следит за ней. Как только программа закрывается - плагин производит обратный процесс - сохраняет текущие настройки и возвращает те, которые были до запуска программы, удаляет файлы и каталоги, указанные в ключах Prog_01_reg_orig и Prog_01_reg_orig.
На случай краха плагина или Тотала - несложно предусмотреть защиты (при штатном запуске проверять в ini-файле наличие ключа на предмет краха, если ключ присутствует - восстановить _orig-файлы, если ключ отсутствует - создать его, а при штатном закрытии удалить.
Более сложная реализация - плагин сам будет следить за изменениями в указанных кустах реестра и каталогах файловой системе; можно даже не указывать программы, слежение будет происходить за всеми дочерними процессами Тотала, запускаемыми из каталога %commander_path%. Но это уже из области фантастики.
Подумал куда разместить тему - в плагины или в программы, решил всё-таки в плагины, ибо всё-же идея связана непосредственно с плагином Autorun.
Кто-то возьмётся реализовать такое? _________________ Win11 x64 Eng | TC DreamLair eternal pre-α
Last edited by LonerD on Thu Mar 07, 2013 23:24; edited 4 times in total |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 06:22 Post subject: |
|
|
D1P wrote: | Смотри в сторону ThinApp |
Э-не. Мыть руки перед едой, не трогать каку и держаться подальше от ThinApp.
Возможно, оно и хорошее... возможно кто-то где-то и умеет делать рабочие приложения на нём. Но мне таковые из испробованного множества пока не встречались. Многие "портаблы" оставляют после себя гадости в системе (то есть работают непортабельно). Все запускаются долго, причём запускаются лишь когда звёзды сойдутся (не знаю в чём причина - но под Win8 не запустилась ни одна, хотя они же под Win7 работали).
Например?
Я не ищу сложностей и полных эмуляций рабочей среды. Достаточно базовой портабельности запускаемых приложений на уровне сохранения-восстановления веток реестра и каталогов с настройками (на уровне PortableApps). Единый запускаемый файл (лучше даже плагин чтобы не висел в процессах) который отслеживает активность программ. Централизованное хранение всех настроек запускаемых программ (чтобы не прописывать ключи и пути для ланчера каждый раз). _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
jentoso
Joined: 20 Dec 2007 Posts: 351
|
|
Back to top |
|
|
KopBuH
Joined: 02 Jul 2010 Posts: 127 Location: Tashkent, Uzbekistan
|
(Separately) Posted: Thu Mar 07, 2013 09:09 Post subject: |
|
|
LonerD wrote: |
Я не ищу сложностей и полных эмуляций рабочей среды. Достаточно базовой портабельности запускаемых приложений на уровне сохранения-восстановления веток реестра и каталогов с настройками (на уровне PortableApps). Единый запускаемый файл (лучше даже плагин чтобы не висел в процессах) который отслеживает активность программ. Централизованное хранение всех настроек запускаемых программ (чтобы не прописывать ключи и пути для ланчера каждый раз). |
ты запросил что-то вроде TotalUninstall, но не только с отслеживанием, но еще и с откатом пользовательских настроек
это должен быть целый монитор системы (как например Мониторинг активности у АВ Касперского )
а вот насчет слежения из каталога файла %commander_exe% - легче отследить процессы по списку, запущенные из ТС.
не думаю, что кто-то за это возьмется) _________________ Оглянись вокруг, посмотри, подумай, поблагодари. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 18:58 Post subject: |
|
|
jentoso
Quote: | а как kIT Portable Launcher |
Да, - я ведь об этом и пишу, только назвал программу сокращённо kiTRun (по имени ехе-шника). Арсен уже полтора года как не развивает функционал Launcherа. Одного реестра недостаточно.
Нужно также сохранение файловых настроек. Плюс хранение списка всех настроек, ключей реестра, перечня файлов в одном месте (оптимально - в ini-файле). Плюс запуск одной копии программы, а не кучи процессов для каждого приложения.
KopBuH
Quote: | ты запросил что-то вроде TotalUninstall |
В идеале - да, только . Но про "что-то вроде TotalUninstall" - я упомянул мелким шрифтом с пометкой "уже из области фантастики."
Quote: | а вот насчет слежения из каталога файла %commander_exe% - легче отследить процессы по списку, запущенные из ТС. |
Да, отслеживать дочерние процессы Тотала. Причём не все процессы, а только те, которые являются составной частью сборки, то есть программы, которые запускаются из каталога %commander_path%.
MVV
Quote: | С помощью ThinApp проще простого виртуализовать весь реестр и папки профиля, системы и т.п. |
Так в том и дело, что не хочется ВЕСЬ реестр и папки. Достаточно отслеживать только те немногие программы, которые запущены в данный момент.
Quote: | Но что если пользователь захочет обратиться к физическим ключам или папкам? |
То есть например если запущена программа с портабелизацией из-под Тотала и в это же время пользователь запустит ещё одну копию, установленную в системе? Значит, всё немножко перепутается. В общем, то же что и при работе, например, PortableApps.
D1P
Quote: | Пройди по ссылке в комменте до раздела "Альтернативы". |
Пройдусь, но выглядят монструозно. Мне бы что-то вроде резидентного PortableApps. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Mellomann
Joined: 07 Sep 2009 Posts: 708
|
(Separately) Posted: Thu Mar 07, 2013 21:38 Post subject: |
|
|
Quote: | что-то вроде резидентного PortableApps | Ну так вот он и ответ!
А по большому счёту - глупо загонять тотал в изоляцию, ибо, как уже было сказано, получается реальная проблема физического доступа к изолированным местам в случае надобности, а перезапустить тотал или запустить ещё один - чаще всего далеко не лучшая затея.
LonerD wrote: | держаться подальше от ThinApp.
Возможно, оно и хорошее... возможно кто-то где-то и умеет делать рабочие приложения на нём. | Ну, я делаю и весьма беспроблемно. Но загонять в контейнер изначально портативную программу - полнейшая чушь и потеря лишнего процевого времени при запуске. Плюс к тому, вылезут ещё разные исключения в изоляциях дочерних процессов. Нафиг-нафиг. В контейнер нужно совать ТОЛЬКО то, что требуется изолировать, и НЕ БОЛЕЕ того.
Уж самое разумное и рациональное - это изолировать каждого нарушителя спокойствия отдельно (благо, портативить можно практически всё!) по своим углам. И будет себе покоится с миром, мирно трудясь на фоне, портативный 2007 офис (аж на целых 200-300 мбайт) или даже 2003й (и того меньше сотни), портативный фотошоп, нюрка, и кучи, кучи прочего софта, который запортаблить ещё проще... |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 23:28 Post subject: |
|
|
Mellomann
Quote: | Ну так вот он и ответ |
Насколько я понимаю, PortableApps - это один ланчер для одного приложения. Запустится десять приложений - будет в памяти висеть 20 процессов. Не айс.
Насколько я понимаю работу PortableApps - реализовать запрошенное невозможно. Пойду ещё поищу базовые руководства, попробую освоить, хотя это совсем не то, что хотелось бы.
Quote: | Ну, я делаю и весьма беспроблемно. |
А у меня всегда и везде никакие ThinApp не работают.
Как оказалось, приложения, сделанные старыми версиями ThinApp, под Win8 работать не могут. И разработчикам ThinApp плевать, что номер версии ОС изменился лишь на одну десятую, и по сути вся структура файловой системы и реестра полностью повторяет Win7. Несовместимость - и баста, переделывайте все ваши портаблы заново. Это не просто идиотизм со стороны разработчиков делать такое, это уже неизлечимый случай.
Quote: | В контейнер нужно совать ТОЛЬКО то, что требуется изолировать, и НЕ БОЛЕЕ того. |
Не согласен. В контейнер не нужно совать НИЧЕГО. Всякие непрозрачные виртуализации не нужны.
Quote: | глупо загонять тотал в изоляцию, ибо, как уже было сказано, получается реальная проблема физического доступа к изолированным местам в случае надобности |
Целиком согласен. Нужен лишь плагин, который следит за запуском программ и сохраняет-восстанавливает записи реестра и настройки.
Всё же предлагаю вернуться к первому сообщению темы и забыть про дискуссию о контейнерах. Немного уточнил и дополнил запрос с пояснениями на конкретном примере.
Неужели никого не интересует универсальная портабельность? _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Mellomann
Joined: 07 Sep 2009 Posts: 708
|
(Separately) Posted: Fri Mar 08, 2013 00:24 Post subject: |
|
|
LonerD wrote: | старыми версиями ThinApp, под Win8 работать не могут |
Это не старый тинап виноват, это в винде чё-то изменилось, что виртуализация больше не работает. В любом случае, ждём обновки. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|