Victor_VG

Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Draik Это генерируется судя по ввиду диалога в MUI. Язык интерфейса какой?. Наверняка там что-то не дописал. Короче, выложи свой код, можно в личку. Так подсказать с ходу сложно, но как я понимаю у тебя используется один язык установки - английский, все его сообщения при сборке программы не компилируются в ресурсную библиотеку содержащую скрипт, а берутся из кода программы установщика - они туда "вшиты" на уровне исходников. Используй как я сказал выше MUI, как минимум с двумя языками, и тогда он сам подключит необходимые макросы и библиотеки языковой поддержки. Иначе тебе придётся весь это код писать вручную, а это значит возможность сделать лишние ошибки и возня с отладкой. А оно тебе в таком виде надо? Проверка наличия файла делается элементарно - используем проверку IfFileExists "$INSTDIR\myfile" lbl_if_exists lbl_if_not_exists Далее если файл существует переходим на ветку алгоритма lbl_if_exists, иначе обрабатываем ситуацию "не существует" по метке lbl_if_not_exists, например выдаём диагностическое сообщение конструкцией вида (при условии использования MUI): Код: Section /o -check IfFileExists "$INSTDIR\myfile" lbl_exists StrCmp $LANGUAGE 1049 +2 MessageBox MB_ICONSTOP|MB_OK "Required file ... not found, installation is aborted." IDOK +2 MessageBox MB_ICONSTOP|MB_OK "Необходимый для работы программы файл .... не найден, установка прервана." IDOK +1 Quit lbl_exists: SectionEnd | Результат будет таков - выведется сообщение в диалоге с иконкой STOP, а после нажатия пользователем единственной кнопки OK в диалоге установка автоматически будет завершена. Этот кусок кода надо вставить в начале программы, сразу за кодом функции .onInit. Тогда секция проверки будет отработана самой первой, до остального кода. Или вариант номер два: Код: Function check IfFileExists "$INSTDIR\myfile" lbl_exists StrCmp $LANGUAGE 1049 +2 MessageBox MB_ICONSTOP|MB_OK "Required file ... not found, installation is aborted." IDOK +2 MessageBox MB_ICONSTOP|MB_OK "Необходимый для работы программы файл .... не найден, установка прервана." IDOK +1 Quit lbl_exists: FunctionEnd Function .onInit !insertmacro MUI_LANGDLL_DISPLAY Call check FunctionEnd | но, тут могут быть сложности с выбором языка установки - NSIS может выбрать язык автоматически в соответствии с региональными настройками, но диалог не вывести. Меня такой вариант обычно устраивает. Плюс - минус строчка - другая в доке с описанием "фичи". P.S. Проверки, если их несколько, можно объединить, а имя файла выводимого в диалоге передать в регистре, например: Код: Function check IfFileExists "$INSTDIR\myfile" lbl_exists StrCpy $R0 "$INSTDIR\myfile" StrCmp $LANGUAGE 1049 +2' MessageBox MB_ICONSTOP|MB_OK '"Required file" $R0 "not found, installation is aborted." IDOK +2 MessageBox MB_ICONSTOP|MB_OK '"Необходимый для работы программы файл" $R0 "не найден, установка прервана."' IDOK +1 Quit lbl_exists: FunctionEnd |
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
| Всего записей: 35194 | Зарегистр. 31-07-2002 | Отправлено: 14:10 03-04-2009 | Исправлено: Victor_VG, 15:36 03-04-2009 |
|