Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для GenLaden

Новый участник


Сообщения: 10
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый вечер. Во-первых спасибо за труды автору данной программы. Все время пользовался раровским exe компилятором пока не столкнулся с рядом трудностей, о них по порядку...

Есть приложение "А" на английском языке в инсталляторе Nullsoft.
Есть файлы руссификации этого приложения "Б".
Алгоритм прост, ставим английскую версию "А", поверх накатываем файлы русификации "Б"
Проблема в том, что после установки английской версии инсталятор Nullsoft запускает установленную программу на выполнение netcard.exe и русификация происходит с ошибками. Раровский компилятор не обладает функционалом убивания процессов, и я решил воспользоваться sfx creator.

Ну первое, что сделал запускаю с помощью "Добавления выполнения приложения" нульсофтовский инсталлятор с ключом \S тихой установки.
Второе установил "Проверка\закрытие" по имени процесса"Netcard.exe
Третье прописал путь установки русифицированных файлов.
Компилирую, запускаю, и тут меня ждет неудача. Судя по всему второе не выполняется, или выполняется не вовремя. Программа запускается, и файлы русификации не могут установится. Подумал, ну да ладно наверно "проверка\закрытие" срабатывает при запуске exe и в это время процесса netcard.exe еще нет. Надо искать альтернативу. На 17 страницы данной темы вычитал про плагин killprocess.dll, решил воспользоваться им. Зашел в "Выполнение собственных функций" добавил KillProcess.nsh функция KillProcess, установил опцию Выполнить до распаковки файлов. Скинул файлы в папку плагин killrocess.dll и findprocess.dll. Воспользовался по аналогии кодом с 17 страницы:
Код: Выделить весь код
Function KillProcess
FindProcDLL::FindProc "Netcard.exe" ; укажите образ процесса
KillProcDLL::KillProc "Netcard.exe"  ; укажите образ процесса
StrCmp $R0 "1" -2 0
execwait "$PROGRAMFILES\Net\Netcard.exe" ; Ждём завершения исполнения файла
FunctionEnd
Компилирую, на этот раз лучше: Приложение запускается, третяя часть не запускается, дожидается закрытия программы, если закрыть то все ок устанавливается, но автоматически netcard.exe убиваться по прежнему не хочет. Если убрать findproc то ожидания нет программа не киляется и опять ошибка невозможности записать из-за запущенного процесса. Помогите добить процесс одним из двух этих способов, что делаю не так?.

Отправлено: 00:13, 23-06-2013 | #688