Как сделать флажок по умолчанию в строке & ldquo; Не создавать папку меню Пуск & rdquo; -Inno Setup-

Вот решение, которое я придумал при изучении предмета. Чтобы получить все неперечислимые несобственные свойства объекта obj do getProperties(obj, "nonown", "nonenum");

function getProperties(obj, type, enumerability) {
/**
 * Return array of object properties
 * @param {String} type - Property type. Can be "own", "nonown" or "both"
 * @param {String} enumerability - Property enumerability. Can be "enum", 
 * "nonenum" or "both"
 * @returns {String|Array} Array of properties
 */
    var props = Object.create(null);  // Dictionary

    var firstIteration = true;

    do {
        var allProps = Object.getOwnPropertyNames(obj);
        var enumProps = Object.keys(obj);
        var nonenumProps = allProps.filter(x => !(new Set(enumProps)).has(x));

        enumProps.forEach(function(prop) {
            if (!(prop in props)) {
                props[prop] = { own: firstIteration, enum_: true };
            }           
        });

        nonenumProps.forEach(function(prop) {
            if (!(prop in props)) {
                props[prop] = { own: firstIteration, enum_: false };
            }           
        });

        firstIteration = false;
    } while (obj = Object.getPrototypeOf(obj));

    for (prop in props) {
        if (type == "own" && props[prop]["own"] == false) {
            delete props[prop];
            continue;
        }
        if (type == "nonown" && props[prop]["own"] == true) {
            delete props[prop];
            continue;
        }

        if (enumerability == "enum" && props[prop]["enum_"] == false) {
            delete props[prop];
            continue;
        }
        if (enumerability == "nonenum" && props[prop]["enum_"] == true) {
            delete props[prop];
        }
    }

    return Object.keys(props);
}
1
задан Alexei 18 March 2019 в 11:54
поделиться

1 ответ

Программно установите флажок для соответствующего компонента (WizardForm.NoIconsCheck).

Вы должны делать это только при новой установке. Для обновлений / переустановок вы должны сохранить предыдущий выбор пользователя (более того, теперь, когда Inno Setup даже не отображает страницу мастера Select Start Folder для переустановок).

procedure InitializeWizard();
begin
  if not IsUpgrade then
    WizardForm.NoIconsCheck.Checked := True;
end;

О функции IsUpgrade см. В моем ответе на
Может ли Inno Setup по-разному реагировать на новую установку и обновление?

0
ответ дан Martin Prikryl 18 March 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: