Цитата R.i.m.s.k.y.:
Вопрос знатокам:
Можно ли в окне выбора компонентов сделать так, чтобы определенные компоненты отображались в зависимости от ОС, под которой запущен инсталлер? И в зависимости от того, есть ли определенный файл/файлы менялась название компоненты и действие при ее выборе »
|
Чтож, отвечаю сам себе - можно и просто.
Код:
![Выделить весь код](images/misc/selectcode.png)
...
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
...
Надеюсь понятно и кому-то поможет.