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

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

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата R.i.m.s.k.y.:
Вопрос знатокам:
Можно ли в окне выбора компонентов сделать так, чтобы определенные компоненты отображались в зависимости от ОС, под которой запущен инсталлер? И в зависимости от того, есть ли определенный файл/файлы менялась название компоненты и действие при ее выборе »
Чтож, отвечаю сам себе - можно и просто.

Код: Выделить весь код
...
function CheckOption(OptionNum: integer): Boolean;
begin
Result:= Page.Values[OptionNum];
end;
...
procedure InitializeWizard();
  GetWindowsVersionEx (Version);
  if (Version.Major = 6) and (Version.Minor = 1) then begin
    if (FileExists (ExpandConstant('{sys}\mfds.dll'))) then mfds := 1; if (FileExists (ExpandConstant('{sys}\mfds.dll.bak'))) then mfds := -1; if not (FileExists (ExpandConstant('{sys}\mfds.dll'))) and not (FileExists (ExpandConstant('{sys}\mfds.dll.bak')))then mfds := 0;
...
    Page := CreateInputOptionPage(wpSelectTasks,'Встроенные кодеки Windows 7', 'Включение/отключение встроенных кодеков Windows 7 должно запускаться от имени пользователя, имеющего права Администратора!!!','Отключение кодеков осуществляется добавлением расширения .bak к файлам. Сами файлы остаются на своем месте - в папке ' + ExpandConstant('{sys}'),False, False);
    {0} if mfds = 1 then Page.Add('ОТКЛЮЧИТЬ Windows Media Foundation'); if mfds = -1 then Page.Add('ВКЛЮЧИТЬ Windows Media Foundation');  if mfds = 0 then Page.Add('В папке ' + ExpandConstant('{sys}') + ' не найден файл mfds.dll или mfds.dll.bak');
...
    if (CheckOption(0) and (mfds = 1)) then begin
...
    if (CheckOption(0) and (mfds = -1)) then begin
...
Надеюсь понятно и кому-то поможет.

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 14:12, 20-01-2010 | #870