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 работать. Но... Не работает! .
Почему - не понимаю .
Пробовал вообще от применения "файлов" отказаться: как внешних, так и внутренних. Запускал командой (опять же, в разных вариантах):
Цитата:
Результата никакого. Уж не знаю, что и придумать - руки опускаются. Ну, не програмист я. Хотя и приходится .
Цитата:
А ты как все это делал?
По всякому .
Вариант 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
Результата никакого. Уж не знаю, что и придумать - руки опускаются. Ну, не програмист я. Хотя и приходится .