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

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

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

articlebot (28-02-2016 18:11): VMware ThinApp (formerly Thinstall) часть 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

   

SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 18:37 05-06-2014
Цитата:
Я и вправду никак не могу понять, почему при нахождении папки "%AppData%/Local/ChemTable Software" в виртуале, не работает функция оптимизации реестра

Возможно так была построена логика программы. Если эта папка существует, то реестр уже дафрагментировался.
 
Добавлено:
Artem_Butenko 18:01 05-06-2014
Цитата:
Отредактировал скрипт таким образом [?]. Думаю не совсем все я сделал правильно.  

Всё правильно.

Цитата:
Файлы извлекаются, только вот запуск исполняемого файла не происходит

Тогда 2 варианта:
1) пробуете сами разобраться запустив без hstart и увидев, что сообщает консоль:

Код:
cmd = CMD_EXTERNAL & " /K " & chr(34)& SandboxPath & PROG_SUB_PATH &"\"& MegaProga & chr(34)
Call WaitForProcess(ExecuteExternalProcess(cmd), 0)

2) выкладывает на всеобщее обозрени весь проект, чтобы можно было скачать и найти ошибку

Цитата:
Еще одно последнее пожелание, хотелось бы увидеть вариант скрипта с ожиданием завершения процесса "MegaSuperProga.exe" и без ожидания завершения процесса.

ожидание:

Код:
Call WaitForProcess(ExecuteExternalProcess(cmd), 0)

без ожидания:

Код:
ExecuteExternalProcess(cmd)

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 17:48 05-06-2014 | Исправлено: SLasH, 17:57 05-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пробовал еще вариант. Главный исполняемый ("MegaSuperProga.exe") файл не запускается.
 
Добавлено:
SLasH
 
Рабочий скрипт. Только не пойму, почему "MegaSuperProga.exe" стартует несколько раз? А если точнее четыре раза, но только при первом запуске. Пожалуйста, помогите исправить ошибку.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 18:00 05-06-2014 | Исправлено: Artem_Butenko, 18:32 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Я уже писал, что ф. OnLastProcessExit запускается несколько раз подряд - отсюда все и косяки.
Это баг и нужно репортить его в VMware.
А пока баг иммет место быть, то нужно кадое действие проверять. Т.е. если нужно запустить процесс из OnLastProcessExit, то нужно сначала проверить, нет ли среди списка процессов уже запущенного процесса.
Из-за этого бага скрипты приходится писать навороченные с кучей проверок.
Пробуйте разбираться, с работой виндового tasklist и написанием BAT-ника для проверки на запуск вашего процесса.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 18:42 05-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Возможно так была построена логика программы. Если эта папка существует, то реестр уже дафрагментировался.

 
Сомнительно. Ведь сборку для теста я запускаю на практически чистой системе, где никогда не было установленной этой программы. Папка создаётся с нуля! Только если она создаётся в реальной системе, то всё работает, а если в песочнице, то увы! Больше похоже на очередной косяк с ThinApp. Хотя, сам фаил RegOrganizer.exe защищён : ASProtect 2.1x SKE -> Alexey Solodovnikov [Overlay] Возможно из-за проверки этой защиты и возникает подобное недоразумение...
Делал попытки его распаковать Stripperом и отдельно ещё какой-то утилитой для снятия ASProtect, но тщетно! Где-то в середине распаковки, выдаёт ошибку, и забивает нулями, потом нормально завершает, но екзешник на выходе получается почти неработоспособным. В итоге оставил как есть, ведь работает и без снятия ASProtect...
 
P.S. В соответствующей ветке попросил анпакнуть RegOrganizer.exe именно той версии, что мне необходим. Если сделают, глянем, в защите было дело или нет...

Всего записей: 1191 | Зарегистр. 05-04-2011 | Отправлено: 20:20 05-06-2014 | Исправлено: AVanti473, 20:29 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Если актуально попробуйте такой скрипт. Проверял, работает. Единственное сейчас не могу проверить с hstart.exe, потому что нет под рукой... Пока просто через cmd. Если подойдет, тогда можно будет добавить и hstart.exe.  
Файлы MyProgram.exe и MyProgram.ini лежат в %ProgramFilesDir%\Data (как было изначально заявлено). При завершении копируются в песочницу, если файл MyProgram.ini уже есть, то он не перезаписывается. Файл MyProgram.exe после завершения удаляется.

Всего записей: 3885 | Зарегистр. 20-02-2007 | Отправлено: 20:46 05-06-2014 | Исправлено: coherent, 21:23 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
В сущности тоже самое, что и я ему писал. Но вся гадость в том, что OnLastProcessExit запускается несколько раз подряд.
AVanti473
Вот скрипт, который бекапит папку "%UserProfile%\AppData\Local\ChemTable Software" и после перезагрузки восстанавливает её. Как я понял папка должна быть по пути "%UserProfile%\AppData\Local\ChemTable Software" а не по "%AppData%\Local\ChemTable Software".
%AppData% - разворачивается в "C:\Users\admin\AppData\Roaming". А подпапка "Local" лежит на одном уровне с "Roaming", поэтому к папке "Local" нужно добираться через "%UserProfile%\AppData\Local".

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 22:47 05-06-2014 | Исправлено: SLasH, 22:48 05-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH

Цитата:
Но вся гадость в том, что OnLastProcessExit запускается несколько раз подряд.

У меня только один раз, проверял.

Всего записей: 3885 | Зарегистр. 20-02-2007 | Отправлено: 23:42 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent

Цитата:
У меня только один раз, проверял.

Зависит от проекта. Упакуйте RollerNT и вставьте скрипт в него. OnLastProcessExit запустится 2 раза.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 23:45 05-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Вы гений! Скрипт работает на 100% но вы меня похоже будете немного ругать в душе. Опять организовалась проблемка! Специфика программы предполагает также автоматическую чистку папки ТЕМП в процессе работы с программой, и соответственно файла cmd_afterReboot.vbs до использования оптимизации реестра и перезагрузки! Можно ли сделать так, чтобы этот скриптовой фаил стартовал из песочницы, вне зависимости где изначально эта песочница будет расположена? Понимаю, если я запустил портативную программу из кучи папок, то путь к песочнице в RunOnce надо как-то определить... Если это получиться, уйдёт и ещё одна совершенно незначительная для меня, но деталь - сам фаил cmd_afterReboot.vbs не останется в живой системе, как след запуска портабельного приложения!

Всего записей: 1191 | Зарегистр. 05-04-2011 | Отправлено: 23:56 05-06-2014 | Исправлено: AVanti473, 23:58 05-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
скрипт

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 00:16 06-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Вы гений, но вы меня точно убьёте! ))) Сейчас расскажу почему и только Вам решать, плюнуть на это дело и послать меня подальше, или ещё что-то возможно сделать?
 
Мы предполагаем перезагрузку, как нечто разумеющееся и тогда всё работает на ура - великолепно! Но, что если пользователь не воспользовался функцией оптимизации реестра и не совершил перезагрузку? Тогда вроде бы всё ок и при следующей-же перезагрузке компа всё (тоесть уже существовавшая, но забекапленная нами папка) вернётся на круги своя. А если пользователь работал с флешки и ограничился только чисткой реестра, без оптимизации? Вытащил флешку, ушёл, а после перезагрузки папке восстанавливаться неоткуда! Тоесть, сделав доброе дело, и защитив файлы бекапа и скрипт песочницей (теперь кстати автоматическая чистка до них не добирается и следов программа не оставляет, как и задумывалось), мы сделали корректную работу портабельной программы, зависимой от обязательной перезагрузки системы!
 
Короче говоря, решив с вашей большой помощью сложнейшие задачи, мы наступили на грабли портабелизации!
 
Боюсь, эта ситуация не решаема, ибо всегда будут какие-то непреодолимые условности.
 
SLasH, позвольте мне выразить Вам огромную благодарность за столь полезный для меня урок в плане скриптов! Вы даже не представляете как Вы мне помогли, несмотря на то, что общий результат похоже не будет успешным в силу обстоятельств!    

Всего записей: 1191 | Зарегистр. 05-04-2011 | Отправлено: 01:07 06-06-2014 | Исправлено: AVanti473, 01:08 06-06-2014
SLasH

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Попробуйте такую модификацию скрипта
 
AVanti473
Выложите полностью ваш проект. Посмотрю что можно придумать.

Всего записей: 723 | Зарегистр. 08-10-2002 | Отправлено: 01:34 06-06-2014 | Исправлено: SLasH, 02:54 06-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
 

Цитата:
Попробуйте такую модификацию скрипта

 
Не работает, проверял на Microsoft Windows 7 Ultimate (x64).
 
coherent
 

Цитата:
Artem_Butenko  
Если актуально попробуйте такой скрипт. Проверял, работает. Единственное сейчас не могу проверить с hstart.exe, потому что нет под рукой... Пока просто через cmd. Если подойдет, тогда можно будет добавить и hstart.exe.  
Файлы MyProgram.exe и MyProgram.ini лежат в %ProgramFilesDir%\Data (как было изначально заявлено). При завершении копируются в песочницу, если файл MyProgram.ini уже есть, то он не перезаписывается. Файл MyProgram.exe после завершения удаляется.

 
Скрипт работает, только вот окно консоли хотелось бы скрыть. Последняя "хотелка" и можно будет полноценно тестировать мой плагин.
 
Добавлено:
Для Вас необходимый файл, -"hstart.exe".

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 03:57 06-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Так и не смог "прикрутить" hstart.exe к Вашему скрипту.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 09:58 06-06-2014 | Исправлено: Artem_Butenko, 09:59 06-06-2014
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Выложите полностью ваш проект. Посмотрю что можно придумать.

 
Не вопрос, пожалуйста: http://rghost.ru/56205605
 
Позвольте лишь пару деталей:
- Пароль на архив кину в личку.
- Папка %Local AppData% в сборке присутствует, но в самом процессе сборки не участвовала, так что если сами будете пересобирать, удалите её!
- Сборка (это важно) делалась на VMware ThinApp v4.7.3-891762 (7101) Важно это потому, что собрав сперва проект на 5.0.0 Build 1391583, я обнаружил его неработоспособность, и только благодаря сторонней помощи, пришёл к выводу о его пересборке на более ранней версии ThinApp!
- Папка Captures при сборке была обозначена как "C:\1" собственно под таким названием она и лежит в архиве. Понимаю, что особого значения это не имеет, но, так, в качестве пояснения почему папка называется "1" )))

Всего записей: 1191 | Зарегистр. 05-04-2011 | Отправлено: 13:17 06-06-2014 | Исправлено: AVanti473, 13:22 06-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SLasH
Касательно OnLastProcessExit, здесь нельзя использовать ExecuteVirtualProcess. Это приведет к бесконечному циклу. Процес, запущенный в результате ExecuteVirtualProcess, сам становится последним. Поэтому по его завершении снова активизируется OnLastProcessExit  и так по кругу.
 
Artem_Butenko

Цитата:
Так и не смог "прикрутить" hstart.exe к Вашему скрипту.

Попробую, но ближе к вечеру.

Всего записей: 3885 | Зарегистр. 20-02-2007 | Отправлено: 17:04 06-06-2014 | Исправлено: coherent, 17:16 06-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Обязательно ли удалять MyProgram.exe? Насколько это принципиально? Ведь MyProgram.ini удалять не надо. Если не нужно, тогда все просто. А если нужно удалять, тогда придется добавлять проверку, завершился ли процесс MyProgram.exe.

Всего записей: 3885 | Зарегистр. 20-02-2007 | Отправлено: 18:27 07-06-2014 | Исправлено: coherent, 18:46 07-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 
Да, удалять "MyProgram.exe" обязательно.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 19:49 07-06-2014
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Пробуйте
Файлы MyProgram.exe, MyProgram.ini и hstart.exe лежат в %ProgramFilesDir%\Data. По завершении MyProgram.exe и hstart.exe удаляются.
 

Всего записей: 3885 | Зарегистр. 20-02-2007 | Отправлено: 23:48 07-06-2014 | Исправлено: coherent, 23:49 07-06-2014
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
 

Цитата:
Пробуйте   Файлы MyProgram.exe, MyProgram.ini и hstart.exe лежат в %ProgramFilesDir%\Data. По завершении MyProgram.exe и hstart.exe удаляются.  

 
Спасибо Вам огромное. Скрипт работает, только почему-то появляется ошибка следующего содержания:
Source: (null)
Description: (null)
File: (null)
Line 71, Character 3
at:

 
Такая ошибка возникает на Windows 7 x64. На Windows XP x86 скрипт работает нормально.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 01:02 09-06-2014 | Исправлено: Artem_Butenko, 15:18 09-06-2014
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

Компьютерный форум Ru.Board » Компьютеры » Программы » VMware ThinApp (formerly Thinstall) 3
articlebot (28-02-2016 18:11): VMware ThinApp (formerly Thinstall) часть 4


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru