Sergey_AV
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору andkh1 Цитата: По всякому . Вариант 1. Чистая система. Запускаю Монитор (ДО). Ставлю приложение (настраиваю его). Копирую на "c:\Extra\clean.exe". Запускаю Монитор (ПОСЛЕ). Сохраняю проект. В корневом каталоге сохраненного проекта, там же где находится Package.ini, создаю файл Utility.vbs, приведенный на предыдущей странице. Удостоверяюсь, что в корневом каталоге присутствует папка %drive_c%, содержащая Extra\clean.exe. Запускаю компиляцию (сборку проекта). Все собралось. Затем проверяю работу приложения. Все работает, но... только до тех пор, пока на реальном диске С (не %drive_c% из проекта) присутствует преусловутый c:\Extra\clean.exe. Естесственно, проверяю на "чистой" (восстановленной) системе. Вариант 2. Рабочая проектная папка (ранее собранный проект), с полным набором для компиляции. Я их не удаляю (по крайней мере, не сразу), иногда возникает необходимость "подкорректировать" проект, поэтому они у меня лежат "для дальнейших эксперементов". Но не суть. Что дальше. Дальше - добавляю в эту "заготовку" %drive_c%, содержащий Extra\clean.exe, и Utility.vbs. Запускаю сборку проекта. Опять же проверяю. Все тоже самое - пока на диске С (реальном) есть Extra\clean.exe, все выполняется (происходит очистка MUICache). Как только "убираем" с диска Extra\clean.exe - все, облом. Есстественно, перед сборкой ("пересборками") чищу Thinstall-кэш (папку Build) - на эти грабли я давно наступал. Хотя это актуально только в том случае, если в проекте применяется компрессия - в противном случае кэш не создается. Что пробовал: Ну, поскольку по всей логике работы, "ExecuteExternalProcess" соответствует реальному диску, а не виртуальному, заменил на "ExecuteVirtualProcess" - должно бы, по идее, с %drive_c%\Extra\clean.exe работать. Но... Не работает! . Почему - не понимаю . Пробовал вообще от применения "файлов" отказаться: как внешних, так и внутренних. Запускал командой (опять же, в разных вариантах): Цитата: Function OnLastProcessExit Set WshShell = CreateObject("WScript.Shell") id = ExecuteExternalProcess("WshShell.Run ""%comspec% /c REG DELETE HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\ /f /va"", 0, True") WaitForProcess id, 0 End Function | Результата никакого. Уж не знаю, что и придумать - руки опускаются. Ну, не програмист я. Хотя и приходится . | Всего записей: 2336 | Зарегистр. 05-03-2002 | Отправлено: 15:20 15-02-2008 | Исправлено: Sergey_AV, 15:25 15-02-2008 |
|