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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

AVanti473



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

Цитата:
Окошко при запуске сборки на примере Total Uninstall

 
При всём уважении, что Вы делаете? Если Вы собираете Total Uninstall на ThinApp, то это бесперспективная задача! Да, программа будет собирать сведения, да, программа отследит тизменения и сделает резервную копию. Возможно, удалит установленное приложение, НО не сможет восстановить его из резервной копии. Просто у ThinApp для этого нет полного доступа в систему.
 
Если уж нужен портабл данной проги новой версии, то лучше этого варианта ещё не видел. А самый рабочий вариант в портабельном исполнении: Total Uninstall Pro v6.3.4 By KloneB@DGuY Более поздние версии этого автора рухаются на x64 системах за милую душу. Только вчера тестил v6.8.0 By KloneB@DGuY так не просто рухнула и вылетела в инглишфейс со сбросом реги, но ещё и в системе где-то наследила так, что как и куда не распаковывай её теперь - реги нет.
 
Моё мнение - не надо лепить Total Uninstall на ThinApp. Получится ПРОГРАММА-КАЛЕКА с битым функционалом, вылетами, и, как следствие, возможно, с засиранием системы до стадии синего экрана.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:07 25-03-2015 | Исправлено: AVanti473, 10:09 25-03-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
может ему не нужно восстанавливать удалённые программы? я например у себя в TU сразу отрубил нафиг эту опцию.
насчет того, что ту не стоит портабелизировать - согласен.

----------
animelist

Всего записей: 7423 | Зарегистр. 11-03-2004 | Отправлено: 10:21 25-03-2015
AVanti473



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

Цитата:
может ему не нужно восстанавливать удалённые программы?

 
Может быть, я не спорю. Суть не в этом, а в том, что сам Total Uninstall написан далеко не глупыми людьми с бооольшим опытом в вопросах софта. Именно по этому данный пакет утилит должен напрямую взаимодействовать с системой, а не через контейнера наподобие ThinApp. Контейнер ThinApp весьма ограничен в правах, так как является не более чем исполняемой программой, не запрашивающей для себя каких-то экстраординарных функций в системе. Total Uninstall напротив, требует максимального взаимодействия для решения своих задач. Когда Total Uninstall портабелизируется по технологии PortableAppZ, он сохраняет возможность прямого взаимодействия, а когда через ThinApp - теряет эту возможность из-за ограничений контейнера в котором будет находится. И всё бы ничего, но для хоть какого-то более или менее адекватного функционала Total Uninstall в ThinApp (а это не только восстановление софта из резервных копий, но и новшества вроде редактирования автозапуска), придётся настроить контейнер так, чтобы он был, как бы это верно сказать - ПОЛНОСТЬЮ дырявым. А что произойдёт в таком случае? Первый же сбой программы и в системе море мусора. И ладно бы в папках и файлах, но ведь и в реестре. Что станет с системой после таких финтов сказать сложно, особенно, если такой вариант портабельного Total Uninstall откажется запускаться повторно или убирать свои следы, вешаясь очередной раз по причине ограниченного доступа.
А так, я не только не против портабельного Total Uninstall, но и двумя руками ЗА, НО, от спецов PortableAppZ.
 
P.S. bumburbia интересуется, как обеспечить программе права админа. Всё что я помню на этот счёт это параметры Package.ini
UACRequestedPrivilegesLevel=highestAvailable
UACRequestedPrivilegesUiAccess=true
Которые по факту, судя по всему, даже не работают.
И где-то на этих страничках был разговор по правам админа на ветки реестра. Увы не помню его результат...
Но, если даже такие права сборка ThinApp и получит (что сомнительно), то врятли ей это поможет в "прокидывании" через контейнер всех свойств Total Uninstall, учитывая, что нужны намного большие возможности, чтобы останавливать системные процессы или внедрятся в них с изменениями.
И где-то "на уровне шестого чувства", я думаю, что говоря о функционале Total Uninstall, нужно ещё задуматься о правах доступа к NTFS, где приоритет не всегда имеет админ компа... Боюсь с такими задачами контейнер ThinApp просто не создан справляться...

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 10:54 25-03-2015 | Исправлено: AVanti473, 11:09 25-03-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
При всём уважении, я спрашивал лишь о том, о чём спрашивал, если вам неизвестен ответ, а судя по всему он вам неведом, то не надо толочь воду в ступе, что вы так любите.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 12:37 25-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473 10:54 25-03-2015
Цитата:
Которые по факту, судя по всему, даже не работают.

возможно из-за, того что вы неправильно их указываете. Советую почитать про манифест, например здесь.
 

Цитата:
как обеспечить программе права админа. Всё что я помню на этот счёт это параметры Package.ini  UACRequestedPrivilegesLevel=highestAvailable

только нужно  
UACRequestedPrivilegesLevel=requireAdministrator  

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 16:58 25-03-2015 | Исправлено: regist123, 16:59 25-03-2015
AVanti473



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

Цитата:
только нужно  
 UACRequestedPrivilegesLevel=requireAdministrator  

 
Странно, согласно комментам из статьи, на которую Вы указали:
 

Цитата:
Можно задать один из 3 уровней прав:
asInvoker - запуск приложения с текущими правами
highestAvailable - даст запрос на повышение привилегий, если текущий пользователь может обладать соответствующими правами, иначе запустит с текущими правами.
requireAdministrator - даст запрос на повышение привилегий в любом случае. Если текущий пользователь не обладает соответствующими правами, то будет предложено ввести пароль и имя пользователя, входящего в группу "Администраторы".

 
Другими словами запрос UACRequestedPrivilegesLevel=requireAdministrator может вообще застопорить процесс, запросив исключительно наивысшие права и пароль доступа к ним. В случае же с UACRequestedPrivilegesLevel=highestAvailable приложение имеет возможность стартануть хотя бы с текущими правами... Или я не так понял?
 
Хотя опять же, это получается, что портабельное приложение лишь запросит права, но не обойдёт UAC и не получит их автоматом. Верно?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 17:35 25-03-2015 | Исправлено: AVanti473, 17:40 25-03-2015
bumburbia



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
Спасибо за подсказку, я проверил, работают оба параметра: и requireAdministrator, и highestAvailable, т.е. в обоих случаях на иконке собранного exe'шника появляется щит запуска от имени администратора.

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 18:07 25-03-2015
AVanti473



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

Цитата:
если вам неизвестен ответ, а судя по всему он вам неведом

 

Цитата:
regist123  
 Спасибо за подсказку, я проверил, работают оба параметра: и requireAdministrator, и highestAvailable

 
Чисто из любопытства - а ещё постами выше моя фраза:
 

Цитата:
на этот счёт это параметры Package.ini  
 UACRequestedPrivilegesLevel=highestAvailable

 
Вас до комментария от regist123 чем не устроила?

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 18:31 25-03-2015
bumburbia



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

Цитата:
Вас до комментария от regist123 чем не устроила?

AVanti473

Цитата:
UACRequestedPrivilegesLevel=highestAvailable
UACRequestedPrivilegesUiAccess=true
Которые по факту, судя по всему, даже не работают.  

" И тут Остапа понесло..." - " Двенадцать стульев" Ильф и Петров.  
Остановитесь...
 
 
 

Всего записей: 2082 | Зарегистр. 12-02-2011 | Отправлено: 18:55 25-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Вновь мое запоздалое: спасибо за помощь.
В итоге я отказался от использования, старого loader.exe, походу к новым UltraISO он равнодушен. Зато нашел способ запуска и удаления дров UltraIso через батники (это его родные команды):
Install.bat
 IsoCmd.exe -i
Remove.bat
 IsoCmd.exe -r
В отличие от loader.exe команда «IsoCmd.exe –r» удаляет не только дрова, но и чистит хвосты в реестре.
Запуск портабелки проходит в WinXP нормально (ThinApp 4.7), но наблюдаются странности в Win7x64 (ThinApp 5.01-5.1):
- если все делать через ThinApp 5.0.1 (сканирование, установка и создание билда), то иногда не удаляются дрова, требуется перезагрузка
- если проект, который вначале был скомпилирован в ThinApp 5.0.1, упаковать в ThinApp 5.1 (инсталлированной версией), то все ОК.  
- и еще, лучше копировать и запускать дрова из C:\Windows, из других директорий происходят глюки.  
Параметры сборки:
В Package.ini обязательно вписать WorkingDirectory=%SystemRoot%.  
В Package.in я еще указал параметры:
ChildProcessEnvironmentExceptions=CMD.EXE
ChildProcessEnvironmentDefault=External
LargeAddressAware=1
AllowExternalKernelModeServices=1
AllowExternalProcessModifications=1
UACRequestedPrivilegesLevel=highestAvailable
AutoStartServices=0
AutoShutdownServices=1
Пока не проверял, может, некоторые параметры и не нужны, но с ними работает.
В папке проекта %SystemRoot% указать  ##Attributes.ini = Merged, ну и в папки куда установлена прога все Merged.
Вот и сам скрипт для копирования удаления файлов (приходится копировать файлы, а не папку, поскольку очень часто папка не удаляется):
Script
Может, подскажешь, как упростить этот скрипт, я имею в виду не писать кучу строк типа MyProgDest1…5.  
 
Добавлено:
bumburbia
AVanti473 правильно писал (хоть и как обычно много буковок, но я уже научился фильтровать, у каждого свой стиль писанины)
Цитата:
Но, если даже такие права сборка ThinApp и получит (что сомнительно), то врятли ей это поможет в "прокидывании" через контейнер всех свойств Total Uninstall

UACRequestedPrivilegesLevel=requireAdministrator - отключает только UAC (Контроль учётных записей пользователей), типа не будет назойливой таблички с вопросом "Вы хотите запустить...". Но, если попытаться, что-то скопировать (например, через скрипт), например, на диск С:\ из под обычного пользователя, то "Отказ в доступе" (я тут спрашивал как скопировать скрипт). Поэтому надо запускать портабелку через ПКМ - запуск от имени администратора. Этот параметр UACRequestedPrivilegesLevel я пробовал и уже наступил на эти грабли, зачем этот параметр в ThinApp нужен так и не понял.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:32 26-03-2015 | Исправлено: 007Alex007, 23:11 26-03-2015
coherent

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

Цитата:
В итоге я отказался от использования, старого loader.exe, походу к новым UltraISO он равнодушен.

Это странно. Я никогда не сталкивался с тем, чтобы loader некорректно устанавливал или удалял драйвера. И вряд ли идеология sys-драйверов изменилась. Хотя...
Единственное, это особенности 7-ки и, в частности, права доступа. Повторюсь, я не специалист по 7-ке, потому что у меня ее нет. Но в тех случаях, когда приходилось работать, все проблемы как раз были связаны с правами, не взирая на то, что работаешь под учеткой админа.
 
5-ку не использую вообще, поэтому ничего сказать не могу. Я снимки делаю в 4.02, за очень редким исключением в 4.7.3.
 

Цитата:
Может, подскажешь, как упростить этот скрипт, я имею в виду не писать кучу строк типа MyProgDest1…5.

Можно попробовать так

Код:
fso.CopyFile MyProgPath & "\" & "*.*", SourcePath & "\"

Но если проверять наличие файлов, то все равно прийдется их всех перечислять (и, соответственно, определять), типа
If not fso.FileExists(MyProgDest1) & not fso.FileExists(MyProgDest2)... then
Аналогично для удаления. Поэтому с целой папкой удобнее.
 
А чем не устраивает установка драйверов в папку (например, drivers) рядом с ехе-шником сборки? Сборка, как правило, запускается не с системного диска и проблем с правами точно быть не должно.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:44 27-03-2015 | Исправлено: coherent, 11:46 27-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007 22:32 26-03-2015
Цитата:
UACRequestedPrivilegesLevel=requireAdministrator - отключает только UAC (Контроль учётных записей пользователей), типа не будет назойливой таблички с вопросом "Вы хотите запустить..."

ошибаетесь это принудительный запрос прав администратора. Если у текущего юзера таких прав нет (запущено под ограниченной учёткой), то будет предложено ввести имя и пароль юзера у которого такие права есть.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 15:53 27-03-2015
007Alex007

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

Цитата:
Единственное, это особенности 7-ки и, в частности, права доступа

Я делаю (точнее пытаюсь сделать) сборку для себя, т.е. под админа. Поэтому никаких ограничений вроде как быть не должно, да их и нет, просто почему-то не всегда происходит удаление дров sys из системы, что с loader (я не очень понял какой механизм удаления заложен там), что через батник (использование настоящих, проверенных командой разработчиков) .
 

Цитата:
Я снимки делаю в 4.02

И я бы так и делал, меньше мусора в сборке, но время не стоит на месте (Win7,8 и т.д.), и некоторые портабелки, сделанные в 4, не запускаются в новых версиях Win. А насчет ThinApp 5.1 (инсталлированная) очень даже хорошо работает, только она тормозная из-за нераспакованности (не знаю, что разработчики намутили с распаковкой, но распакованная очень глючная).
 

Цитата:
А чем не устраивает установка драйверов в папку (например, drivers) рядом с ехе-шником сборки?

Проблема в том, как прописать в Package.ini параметр WorkingDirectory (почему то для UltraISO это обязательный параметр). Я попытался так:
WorkingDirectory=.
Папка drivers создается-удаляется рядом с портабелкой. Скрипт
Но при попытке запуска батника cmd пишет:  
C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>IsoCmd.exe -i
Driver: ISODrive.SYS is not in the C:\Program Files (x86)\VMware\VMware ThinApp\
UltraISO\bin\ISODrv64.sys directory.
Т.е. ThinApp ищет файл не там, где нужно. Хотя папка с дровами создается-удаляется рядом с портабелкой. Поэтому альтернативой и стал путь %SystemRoot% (когда делал в ThinApp 4.7 для XP с копированием папка drivers в %Temp%, батник постоянно кричал о том, что не найден IsoCmd.exe в C:\Windows).
 

Цитата:
fso.CopyFile MyProgPath & "\" & "*.*", SourcePath & "\"

А как прописать удаление тех файлов, которые копировались? Или оставлять от прошлой версии? Был бы признателен, если бы у тебя была возможность, доработать мой/немой скрипт, а то он через чур, длинный, для казалось бы, простого копирования.
 
 
regist123
Я не профи, а любитель, но доверяю собственному опыту (грабли).
Чем параметр UACRequestedPrivilegesLevel отличается от ПКМ мыши на проге и запуск от имени админа? Я и написал в бессмысленности применения этого параметра. Этот параметр убирает только дополнительные окна запроса (типа украшательство безоконного запуска портабелки), но не дает права админа (я уже писал о копировании скрипта из портабелки в реальную систему, под обычным пользователем). Многие (и я тоже так думал) думают, что при использовании этого параметра прога сразу запустится с админскими правами. На самом деле придется повозиться. И это не только в ThinApp, но и в Spoon. Хотелось бы мне ошибиться и вдруг и вправду есть параметр, который дает права админа портабелке, но думаю, в MS не настолько наивны, чтобы раздавать права всем прогам, направо и налево.
 
Добавлено:
И еще:
Кто нибудь делал портабелку FontExpert с запуском под Win7 x64? Проблема при запуске пишет:
не зарегистрирован FontExpertAdmin.DLL. Как зарегистрировать или прописать в реальную систему?
Посмотрел портабелку от goodcow. Не работает.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 21:07 27-03-2015 | Исправлено: 007Alex007, 21:35 27-03-2015
coherent

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

Цитата:
Но при попытке запуска батника cmd пишет:   C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>IsoCmd.exe -i  Driver: ISODrive.SYS is not in the C:\Program Files (x86)\VMware\VMware ThinApp\  UltraISO\bin\ISODrv64.sys directory.

А если так?

Код:
fso.CopyFolder SourceFolder, DrvFolder  & "\"

 
 
 
Добавлено:
Еше сталкивался, что в батниках, при запуске через скрипты, хорошо привязываться к каталогу, из которого скрипт запускается, типа %~dp0\IsoCmd.exe.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 21:49 27-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Source: Ошибка выполнения Microsoft VBScript
Description: Путь не найден
File: (null)
Line 11, Character 2
at:  
 
Добавлено:
Добавил параметр %~dp0\IsoCmd.exe к батникам с настройками скрипта старыми\новыми ответ cmd:  
C:\Program Files (x86)\VMware\VMware ThinApp\UltraISO\bin>C:\Program Files (x86)
\VMware\VMware ThinApp\UltraISO\bin\drivers\\IsoCmd.exe -i
"C:\Program" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Как я и говорил cmd требует файлы в %SystemRoot%.

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:13 27-03-2015
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
21:07 27-03-2015
Цитата:
Чем параметр UACRequestedPrivilegesLevel отличается от ПКМ мыши на проге и запуск от имени админа?

когда делаете только для себя и каждый раз щёлкаете правой кнопкой разницы может и нет (разве только на пару кликов мыши движений меньше). А когда делаете для других, где большая часть юзеров запускает просто двойным кликом разницу уже и сами понимаете.  

Цитата:
Этот параметр убирает только дополнительные окна запроса

зависит от того какое значение вы туда пропишите, в приведённом мной примере он наоборот принудительно вызывает это окно.

Цитата:
в MS не настолько наивны, чтобы раздавать права всем прогам, направо и налево.

права раздаёт не MS а сам юзер добровольно подтверждая в этом окне, что он готов дать программе права админа. regist123 16:58 25-03-2015
Цитата:
возможно из-за, того что вы неправильно их указываете. Советую почитать про манифест, например здесь.

вам также советую почитать.

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 11:45 28-03-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Смотрю мой пост не добавился, поэтому повторюсь. Ситуация похоже та, с которой периодически сталкиваюсь: мы говорим как бы об одном, а делаем не совсем, а может и совсем не
 
1.
Цитата:
"C:\Program" не является внутренней или внешней

Это означает ошибку в самом батнике. Он должен выглядеть как-то так (с учетом возможных пробелов):

Код:
"%~dp0\IsoCmd.exe" -i

Повторюсь, если батник запускается из скрипта, то путь к исполняемому файлу должен быть полным. В случае копирования файлов в %SystemRoot% спасает ситуацию параметр WorkingDirectory=%SystemRoot%, который задает текущий каталог.
 
2. Спрашивается вопрос, зачем в принципе запускать батник (+ лишний файл), если можно запустить из скрипта прямо IsoCmd.exe?

Код:
id = ExecuteExternalProcess(chr(34) & SourcePath & "\IsoCmd.exe" & chr(34) & " -i")

Аналогично IsoCmd.exe -r.
 
3. Так

Код:
fso.CopyFolder SourceFolder, DrvFolder

файлы из папки SourceFolder скопируются в папку DrvFolder, а так

Код:
fso.CopyFolder SourceFolder, DrvFolder & "\"

папка SourceFolder со всем содержимым скопируется в DrvFolder.
 
4. Куда UltraISO при инсталляции устанавливает драйвер? Возможно в папку Windows, и это для него принципиально и при другом расположении он не хочет корректно работать.
 
Исхожу из общих соображений. Проверить не могу. Нет под рукой ThinApp, плюс тачпэд - это не мое.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 13:13 28-03-2015 | Исправлено: coherent, 13:34 28-03-2015
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
007Alex007
Посмотрел я на этот ISODrive.
 
1. Таки loader не совсем корректно устанавливает драйвер и поэтому нужны лишние телодвижения через сам UltraISO, чтобы виртуальный привод появился в списке приводов. Что не есть айс.
 
2. Устанавливать/удалять можно как через батник, так и напрямую, запуская IsoCmd.exe с параметрами. Устанавливать можно в ЛЮБУЮ папку. Я предпочитаю рядом с ехе сборки. Но у каждого свои преференции.
 
3. Есть одно НО. Этот ISODrive оказался капризным, для нормальной установки/удаления ему надо изменять текущий каталог на тот, где находятся файлы драйвера. Можно, конечно, и через WorkingDirectory=, но это не универсально и не для любого каталога подходит. Лучше прямо в скрипте, типа objWshShell.CurrentDirectory = DrvFolder, где DrvFolder - полный путь к папке drivers, в которой будет устанавливаться драйвер. Идет перед id = ExecuteExternalProcess...
 
4. Наблюдается проблема с удалением папки drivers при закрытии программы. Какой-то процесс ее блокирует, не давая удалить. Честно говоря, мне лень выяснять в чем причина. Если бы я делал для себя, то кинул бы папку drivers рядом с ехе-шником сборки и просто запускал бы установку/удаление без выноса папки из контейнера в систему и последующего ее удаления.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 18:37 29-03-2015 | Исправлено: coherent, 18:38 29-03-2015
007Alex007

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
coherent
Поскольку много инфы и получается путаница, то по порядку:
Дальнейшие эксперименты проводились под Win7x64 SP1.
В первом скрипте %SystemRoot% все ОК.  
Во втором скрипте "рядом с портабелкой" проблемы:
1. Новое копирование (fso.CopyFolder SourceFolder, DrvFolder & "\"):  
Source: Ошибка выполнения Microsoft VBScript
Description: Путь не найден
File: (null)
Line 11, Character 2
at:  
 
2. Добавление директории через vbs (objWshShell.CurrentDirectory = DrvFolder):
Source: Ошибка выполнения Microsoft VBScript
Description: Требуется объект: 'objWshShell'
File: (null)
Line 12, Character 2
at:  
 
3. Копирование как в первом скрипте, но с добавлением запуска IsoCmd.exe:
fso.CopyFolder SourceFolder, DrvFolder  
id = ExecuteExternalProcess(chr(34) & SourcePath & "\IsoCmd.exe" & chr(34) & " -i")
В ThinApp 5.1 папка копируется-удаляется, но ничего не запускается (зря я начал хвалить инсталлированную версию ThinApp 5.1). В ThinApp 5.01 - то удаляется, то не удаляется.
 
4. Если в батниках добавлять параметр "Pause" то, драйвер удаляется. Такое впечатление, что драйверу не хватает времени на удаление. Как прописать в скрипте задержку типа "Pause", как в батнике. Пробовал вставлять-добавлять WScript.Sleep 500, но скрипт ругается.
 
Вообще для себя, я уже остановился на первом варианте скрипта %SystemRoot% + батники. Но все равно интересно, почему не хочет запускаться рядом с портабелкой.
 

Цитата:
то кинул бы папку drivers рядом с ехе-шником сборки и просто запускал бы установку/удаление без выноса папки из контейнера в систему и последующего ее удаления

Что прописать в WorkingDirectory? Ведь в vbs параметр (objWshShell.CurrentDirectory) через thinapp не работает. Хотя бы у меня.
 
Добавлено:
regist123
Не спорю. После просмотра ссылки - убедил. Раньше всегда применял - highestAvailable (поскольку в руководстве по ThinApp - highestAvailable это значение использует максимально доступные права, что позволяет избежать сообщения UAC.).  
pavlaf Если есть возможность, может стоит в учебник для народа, внести дополнительные описания параметра UACRequestedPrivilegesLevel?

Всего записей: 138 | Зарегистр. 18-04-2008 | Отправлено: 22:40 30-03-2015 | Исправлено: 007Alex007, 23:23 30-03-2015
coherent

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

Цитата:
Поскольку много инфы и получается путаница

Квинтэссенция всего сказанного в моем последнем посте.
 
1.Устанавливать можно в ЛЮБУЮ папку, в том числе рядом с ехе сборки. Устанавливать/удалять можно как через батник, так и напрямую, запуская IsoCmd.exe с параметрами прямо в скрипте. По крайней мере у меня работает, и по крайней мере на ХР.
 

Цитата:
Во втором скрипте "рядом с портабелкой" проблемы:  1. Новое копирование (fso.CopyFolder SourceFolder, DrvFolder & "\"):   Source: Ошибка выполнения Microsoft VBScript  Description: Путь не найден

Нюансы с "\" и без я описал. Если используется  этот скрипт, то должно быть без "\".
 
2. На момент установки драйвера нужно изменять текущий каталог на тот, где находятся файлы драйвера.

Цитата:
Добавление директории через vbs (objWshShell.CurrentDirectory = DrvFolder):  Source: Ошибка выполнения Microsoft VBScript  Description: Требуется объект: 'objWshShell'

А этот объект определен в начале скрипта? Типа Set WshShell = CreateObject("WScript.Shell").

Цитата:
то кинул бы папку drivers рядом с ехе-шником сборки и просто запускал бы установку/удаление без выноса папки из контейнера в систему и последующего ее удаления...   Что прописать в WorkingDirectory?

 
3. Есть проблема с неудалением папки drivers, файлы из нее удалаются, а она сама нет. Я задавал в скрипте вывод сообщения перед удалением, т.е. мог ждать сколько угодно между удалением драйвера, что было видно по пропаданию значка виртуального привода из списка приводов, и удалением самой папки drivers. Независимо от времени папка не удалялась.
 

Цитата:
то кинул бы папку drivers рядом с ехе-шником сборки и просто запускал бы установку/удаление без выноса папки из контейнера в систему и последующего ее удаления...   Что прописать в WorkingDirectory?

Ничего. Папка живет своей жизнью. Нужен виртуальный привод - запустил батник руками прямо в папке, не нужен - удалил. Самый простой вариант, но тем не менее... Вряд ли в каждом сеансе в UltraIso используется виртуальный драйвер.  

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:00 31-03-2015 | Исправлено: coherent, 11:02 31-03-2015
   

Страницы: 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