Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » VMware ThinApp | Thinstall (Часть 4)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Часть 1 (чисто предыстория - к прочтению необязательна):
 
1) Итак, есть у меня привычка устанавливать и запускать не особо часто используемые мной программы в собранном мною же "девайсе" -портабельном файловом менеджере (далее "девайс") http://avanti473.ru/news.php?readmore=133 Ну, чтобы результаты их работы и данные реестра падали в песочницу "девайса". Надо оговориться, что я большой любитель работы операционки в режиме тени (программа Shadow Defender, когда после первой же перезагрузки система остаётся девственно чистой), поэтому есть резон чтобы всё сохранялось в песочнице вышеупомянутой сборки, для комфортного продолжения работы.
 
2) Я не игроман, но, неожиданно новый год обрадовал бесплатной игрушкой "Metro Last Light Redux". Вернее, листая смартфон увидел в яндексе сообщение о бесплатной раздаче, и успел скачать полный дистрибутив за 38 минут до её завершения. Разумеется, установил её в выше упомянутый "девайс" и некисло так завис в игрушке на пару часов. Пока отправлял комп в сон вроде всё норм - прогресс игры сохранялся в перерывах. Но когда перегрузился, то с удивлением обнаружил, что прогресс игры исчез. В общем устроил себе головомойку на целый день, с поиском прогресса, а именно - куда же он сохраняется. И так рыл и эдак, да всё бесполезно. Испробовал всё, и в реале и в виртуале... Любопытство и гордость до последнего не давали обратиться к гуглу. ))) Зря. Когда все идеи закончились, пришлось идти в гугл. и по первой же ссылке понять какой я дятел. ))) В силу тотальной ненужности и бесполезности для меня папки "Мои документы" (см. выше про Shadow Defender), я вообще давно и благополучно забыл о её существовании. Ну, а так-как папку %Personal%, я почти всегда оставляю в проектах с изоляцией Merged, то понятно почему я ничего не мог найти ни в реале ни в виртуале. В виртуале это дырка, а в реале, при исследовании Total Uninstall(ом) она, либо в исключении, либо я машинально её пропускал в результатах, не придавая значения.
 
Часть 2 (суть проблемы):
 
3) В общем пересобирать "девайс" под конкретную игрушку прям очень как влом (проще игрушку выкинуть). Больше путаницы, а проблема давнишняя, так почему бы ещё раз не вернуться к её решению? Задача - без пересборки портабла сменить изоляцию папки %Personal% с Merged на WriteCopy. И пофиг уже игрушка, ведь желание решить старую задачу вышло на первый план. )))
 
4) Лезу в мануал, нахожу по результатам поиска SetfilesystemIsolation и вспоминаю, что я подглядывал решение, когда скрипт ThinApp можно запустить без обязательного помещения его в проект. Для этого, повторюсь - берётся из распакованной версии ThinApp scripting.dll и помещается в системную папку "C:\Program Files (x86)\ThinstallPlugins", а рядом с ним любой vbs-скрипт с ThinApp(овскими) условиями запуска, макросами и прочим. При этом, все сборки ThinApp начинают запускаться на компьютере именно с выполнения этого скрипта. Не только сборки, но и отдельные процессы в этих сборках... Хотя, если поместить эту конструкцию внутрь файловой системы конкретного портабельного приложения (в случае моего "девайса" - портабельного файлового менеджера), то только та сборка и будет стартовать со скриптом. Ну, а раз скрипт таким макаром стартует и именно с тинаповскими командами вроде OnFirstParentStart или ExpandPath("%Personal%"), я делаю вывод, что так это всё и должно работать без пересборки проекта.
 
5) Иду сюда на форум за поддержкой, где Вы, вместе с MobyArt любезно помогли мне и подсказали как сделать так, чтобы vbs(ник) работал без ошибок. Работать-то он работает, да вот не выполняет то, что от него требуется. Иначе говоря, я по разному менял скрипт в различных вариантах и с различными значениями изоляции. После, в своём "девайсе" я просто копировал любой файл в папку %Personal%, чтобы проверить, не сменилась ли в ней изоляция. Опытным путём выяснил, что нет, не сменилась. Как была дырка в систему, так и осталась. Из Merged она не стала WriteCopy или Full. Пробовал (чисто ради эксперимента) на других папках с изоляцией WriteCopy сменить её например на Merged - тоже облом.
 
6) Единственное, что эти все эксперименты были с папками %Personal%, %Profile% или %ProgramFilesDir%. Естественно они есть в сборке и у них есть изоляция, которую и предполагается сменить. Ведь именно для этого же существует описываемый в мануале API-функционал - SetfilesystemIsolation !?
 
7) В моём случае я повышаю изоляцию папки %Personal% с Merged на WriteCopy. Должно работать, но не работает.
 

Код:
Function OnFirstParentStart
Dim FolderName
FolderName = ExpandPath("%Personal%")
MsgBox FolderName
SetfilesystemIsolation FolderName, 1
End Function

 
Скрипт отрабатывает без ошибок, MsgBox показывает правильный путь. scripting.dll пробовал от разных распакованных версий ThinApp (у меня работал от любой, что ниже версии сборки "девайса", или выше).
 

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 20:45 06-01-2021 | Исправлено: AVanti473, 21:28 06-01-2021
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » VMware ThinApp | Thinstall (Часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru