Re[2]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.09.20 12:05
Оценка:
Здравствуйте, Gradiens, Вы писали:

G>автоматом сдвигать окно, так чтобы оно гарантированно влезло на экран, вы не пробовали?


Нет, как и обеспечить отображение этого окна на CGA.
Re[4]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.09.20 14:13
Оценка: +1
Здравствуйте, Shtole, Вы писали:

S>Исторически, эту моду (на гипертрофированные установщики) ввела Microsoft.


У меня установщик крайне минималистичный. Только сделан он не в виде "мастера", из одного окна с изменяемым наполнением, а в виде нескольких последовательных диалогов. Когда я его делал (начало 2000-х), это было нормально, а потом, из-за борьбы MS с приложениями, насильственно вытаскивающими окна наверх, некоторые вновь создаваемые диалоги стали отображаться где-то внизу Z-списка, поэтому пришлось сделать фоновое окно с логом, а диалоги создавать, как дочерние от него.

S>В наши дни обычно делают кастомный мини-инсталлятор.


Где это "обычно" делают? Что ни возьму — или MSI, или Inno, или NSIS, или самодельное, но похожее.

S>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.


У нас явно разные понятия о трудоемкости. Для регистрации достаточно лишь создать ветку в Uninstall с несколькими параметрами. Это сугубо локальная, синхронная и линейная операция. Для реализации любого "мастера" требуется создать несколько шаблонов диалогов (ну, или создавать каждый во время выполнения), написать кучку обработчиков оконных сообщений, сделать из всех этого нечто вроде конечного автомата, и т.д.

S>2. По центру горизонтально, по вертикали ближе к верху, большая синяя кнопка Install <ProductName>. (Теперь понятно, почему всё так, да?)


Непонятно. Где такое можно увидеть?

S>3. Чуть ниже другая кнопка, поменьше: Options, которая при нажатии меняется на поле выбора папки.


Зачем меняется? Чтобы смотрелось круто и непонятно?

S>4. Вместо лицензии внизу мелким шрифтом: "Устанавливая программу, вы соглашаетесь с лицензией: landing.com/eula".


Тогда придется на каждую выпущенную версию держать отдельный файл лицензии на сервере. Да и неправильно это — для несетевой программы иметь лицензионное соглашение только в сети. Пользователей, у которых какое-то время нет доступа к сети, значительно больше, чем обладателей мониторов 800x600.
Re[3]: Пределы глупости человеческой :)
От: Pavel Dvorkin Россия  
Дата: 18.09.20 14:19
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, Gradiens, Вы писали:


G>>автоматом сдвигать окно, так чтобы оно гарантированно влезло на экран, вы не пробовали?


ЕМ>Нет, как и обеспечить отображение этого окна на CGA.


Женя, зря ты так. CGA Windows нынешняя не поддерживает, а вот 640*480 теоретически быть может. Как минимум в Safe Mode. И проверить, что все в этом (и в других) режиме видно, вполне можно было. Пользователь, конечно, глуп по определению, но он не обязан разгадывать загадки.
With best regards
Pavel Dvorkin
Re[4]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.09.20 14:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>640*480 теоретически быть может. Как минимум в Safe Mode.


Начиная с висты — 800x600.

PD>Пользователь, конечно, глуп по определению, но он не обязан разгадывать загадки.


Судя по тому, что высоту окна я увеличил в январе, а первая жалоба (да и та неадекватная) поступила в сентябре, я таки правильно расставил приоритеты.
Re[4]: Пределы глупости человеческой :)
От: CreatorCray  
Дата: 18.09.20 19:16
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.

Да в общем то нет, просто подветка в реестре с парой параметров.

S> Сам же диалог принято делать так:

S>1. Таскабельный белый прямоугольник без заголовка
Это где так принято?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[6]: Пределы глупости человеческой :)
От: CreatorCray  
Дата: 18.09.20 19:16
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Юзер щёлкает внизу: Next, Next, Next... БУМ! Кнопка Install, (не) выглядящая как кнопка, вдруг оказывается сверху. "Вот это поворот!"

Тоже верно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Пределы глупости человеческой :)
От: CreatorCray  
Дата: 18.09.20 19:16
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Женя, зря ты так. CGA Windows нынешняя не поддерживает, а вот 640*480 теоретически быть может. Как минимум в Safe Mode.

Я как то натолкнулся что винда в Safe mode не поддерживает удаление программ, когда пытался откатить криво вставшие vmware tools, убившие видео. В нормальном режиме я получал чёрный экран а в safe не мог удалить кривой видеодрайвер. Вот такая вот засада вышла.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Пределы глупости человеческой :)
От: Pavel Dvorkin Россия  
Дата: 19.09.20 05:42
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Я как то натолкнулся что винда в Safe mode не поддерживает удаление программ, когда пытался откатить криво вставшие vmware tools, убившие видео. В нормальном режиме я получал чёрный экран а в safe не мог удалить кривой видеодрайвер. Вот такая вот засада вышла.



Странно. Вообще-то Safe Mode и предназначен для того, чтобы войти, не загружая драйверы, кроме списка для Safe Mode, а потом удалить то, что вызывает проблемы. В противном случае зачем он нужен — не работать же в нем постоянно ?
With best regards
Pavel Dvorkin
Re[5]: Пределы глупости человеческой :)
От: Shtole  
Дата: 19.09.20 07:51
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>В наши дни обычно делают кастомный мини-инсталлятор.

ЕМ>Где это "обычно" делают? Что ни возьму — или MSI, или Inno, или NSIS, или самодельное, но похожее.

Пожалуй, я погорячился про "обычно". Я в последнее время работал с компанией, через которую много софта проходило. Они его монетизировали и всеми правдами и неправдами повышали разные конверсии, в т.ч. "те, кто запустил инсталлер -> те, кто дошёл до установленной программы". Но не нарушая приличий, чтобы не забанили. (Отсюда крестик, eula и стандартный uninstall). Но не всем это нужно, видимо -- конверсию повышать. (Ирония).

S>>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.


ЕМ>У нас явно разные понятия о трудоемкости. Для регистрации достаточно лишь создать ветку в Uninstall с несколькими параметрами. Это сугубо локальная, синхронная и линейная операция. Для реализации любого "мастера" требуется создать несколько шаблонов диалогов (ну, или создавать каждый во время выполнения), написать кучку обработчиков оконных сообщений, сделать из всех этого нечто вроде конечного автомата, и т.д.


Я говорил о том, что в установщике, сделанном по описанной выше схеме, это [должно быть] самое трудное. Это критерий переусложнённости, если хотите. Если вам это не кажется самым трудным, возможно, стоит задуматься

S>>2. По центру горизонтально, по вертикали ближе к верху, большая синяя кнопка Install <ProductName>. (Теперь понятно, почему всё так, да?)


ЕМ>Непонятно. Где такое можно увидеть?


Таким был, если мне не изменяет память, установщик Chrome, пока они его ещё больше не упростили. (Я, кстати, как-то пропустил это изменение -- щас перезапустил установку, а он вообще молча всё ставит без вопросов. Вопросы там частично переехали на лендинг, частично были признаны риторическими Вот кто о конверсии думает).

S>>3. Чуть ниже другая кнопка, поменьше: Options, которая при нажатии меняется на поле выбора папки.


ЕМ>Зачем меняется? Чтобы смотрелось круто и непонятно?


Чтобы не делать всего того, о чём вы выше писали -- дополнительные диалоги etc. Такой, типа, рудиментарный wizard. Идея в том, что кнопка Options меньше замусоривает окно, чем само поле с абракадаброй "Program Files (x86)" или "Users\%UserName%", а львиная доля пользователей нажимать на неё всё равно не будет.

S>>4. Вместо лицензии внизу мелким шрифтом: "Устанавливая программу, вы соглашаетесь с лицензией: landing.com/eula".


ЕМ>Тогда придется на каждую выпущенную версию держать отдельный файл лицензии на сервере. Да и неправильно это — для несетевой программы иметь лицензионное соглашение только в сети. Пользователей, у которых какое-то время нет доступа к сети, значительно больше, чем обладателей мониторов 800x600.


Вам решать Я просто поделился опытом
Do you want to develop an app?
Отредактировано 19.09.2020 9:26 Shtole . Предыдущая версия .
Re[5]: Пределы глупости человеческой :)
От: Shtole  
Дата: 19.09.20 07:53
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.

CC>Да в общем то нет, просто подветка в реестре с парой параметров.

S>> Сам же диалог принято делать так:

S>>1. Таскабельный белый прямоугольник без заголовка
CC>Это где так принято?

Несколько лет назад, мне помнится, любые установщики браузеров так делались. Если память меня подвела, покорнейше прошу простить и считать написанное моей творческой находкой.
Do you want to develop an app?
Re[6]: Пределы глупости человеческой :)
От: Shtole  
Дата: 19.09.20 10:05
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

CC>>Я как то натолкнулся что винда в Safe mode не поддерживает удаление программ, когда пытался откатить криво вставшие vmware tools, убившие видео. В нормальном режиме я получал чёрный экран а в safe не мог удалить кривой видеодрайвер. Вот такая вот засада вышла.


PD>Странно. Вообще-то Safe Mode и предназначен для того, чтобы войти, не загружая драйверы, кроме списка для Safe Mode, а потом удалить то, что вызывает проблемы. В противном случае зачем он нужен — не работать же в нем постоянно ?


Я его использовал для Restore Points. ИМХО, винда ненавязчиво намекает, что удалять глючнософт надо ролбэками, а не новыми транзакциями. (Кстати, это к вопросу о регистрации в списке программ и что в него входит -- restore point надо создавать. Я же помню, там не всё так просто).
Do you want to develop an app?
Отредактировано 19.09.2020 10:11 Shtole . Предыдущая версия .
Re[6]: Пределы глупости человеческой :)
От: CreatorCray  
Дата: 19.09.20 10:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Странно. Вообще-то Safe Mode и предназначен для того, чтобы войти, не загружая драйверы, кроме списка для Safe Mode, а потом удалить то, что вызывает проблемы.

Вот и я того же ожидал. Но получил в ответ message box что windows installer service не может работать в safe mode поэтому хрен мне по всей морде а не удалить сглючивший драйвер.
Плюнул и переустановил, оказалось банально быстрее.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Пределы глупости человеческой :)
От: CreatorCray  
Дата: 19.09.20 10:26
Оценка:
Здравствуйте, Shtole, Вы писали:

Это в виртуалку ставилось, я там снапшоты делаю перед/после установкой чего либо или каким переконфигурированием.
Но поставить VMware tools чтоб получить нормальную интеграцию это самый первый шаг после инсталла, и всегда всё во всех версиях винды работало прекрасно, а в конкретно этой чего то перекосило.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Пределы глупости человеческой :)
От: Ночной Смотрящий Россия  
Дата: 19.09.20 14:37
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>У тех "квадратных моников" разрешение минимум 1024x768. Упомянутое окно имеет размеры 527x618, на них оно прекрасно смотрится.


Ну так напиши крупными буквами в system requirements минимальное разрешение хотя бы.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.09.20 08:04
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Но не всем это нужно, видимо -- конверсию повышать. (Ирония).


Любыми средствами — действительно не всем.

S>>>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.


S>в установщике, сделанном по описанной выше схеме, это [должно быть] самое трудное.


Такое возможно, если установщик написан на готовом GUI-фреймворке. У меня он на голом WinAPI, где интерфейсные взаимодействия по определению реализуются значительно сложнее, чем регистрация в Uninstall.

S>Если вам это не кажется самым трудным, возможно, стоит задуматься


Да, я уже задумывался, и пытался делать на фреймворках. Пока не понравился ни один. На WinAPI — просто писанина и лишний код, на фреймворках — или борьба с неочевидными косяками (MFC, WTL), или неадекватный размер бинарников (Qt).

S>Таким был, если мне не изменяет память, установщик Chrome, пока они его ещё больше не упростили.

S>он вообще молча всё ставит без вопросов.

Вот за это авторы установщиков, подобных Chrome, должны вечно гореть в аду, предварительно подвергшись четвертованию.

S>>>3. Чуть ниже другая кнопка, поменьше: Options, которая при нажатии меняется на поле выбора папки.

S>что кнопка Options меньше замусоривает окно, чем само поле с абракадаброй "Program Files (x86)" или "Users\%UserName%"

Тогда она должна называться не Options, а Directory, или как-то еще. Options, по смыслу — это различные опции.
Re[7]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.09.20 08:06
Оценка:
Здравствуйте, Shtole, Вы писали:

S>ИМХО, винда ненавязчиво намекает, что удалять глючнософт надо ролбэками, а не новыми транзакциями.


Об этом она намекает только в отношении софта, глубоко внедряющегося в систему.

S>Кстати, это к вопросу о регистрации в списке программ и что в него входит -- restore point надо создавать.


Для каждой программы — не нужно.
Re[7]: Пределы глупости человеческой :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 20.09.20 08:09
Оценка:
Здравствуйте, CreatorCray, Вы писали:

PD>>Safe Mode и предназначен для того, чтобы войти, не загружая драйверы, кроме списка для Safe Mode, а потом удалить то, что вызывает проблемы.


CC>Вот и я того же ожидал. Но получил в ответ message box что windows installer service не может работать в safe mode поэтому хрен мне по всей морде а не удалить сглючивший драйвер.


Подозреваю, что в установщик того драйвера напихали всякой дряни, чтобы смотрелось стильно-модно-молодежно, вот он и не взлетел в Safe Mode.
Re: Пределы глупости человеческой :)
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.09.20 08:23
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вчера один юзер купил несколько лицензий, для установки на разные компьютеры, собрался организовать какую-то навороченную систему голосовой связи. Сегодня пишет "успешно установил на два компьютера, а на третий не могу — у окна с текстом лицензионного соглашения нет кнопки "принять"! Что делать, помогите!". Приложил фото (не скриншот) экрана — экран что-то вроде 1024x600, нижняя часть окна тупо не влезла. Осторожно спросил, не пробовал ли он сдвинуть окно вверх. Через полчаса отписался — "спасибо, теперь все получилось!".


Ну так ты поправил код-то, чтобы окно всегда влезало?
Re[7]: Пределы глупости человеческой :)
От: Shtole  
Дата: 20.09.20 09:09
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Но не всем это нужно, видимо -- конверсию повышать. (Ирония).

ЕМ>Любыми средствами — действительно не всем.

Ой, come on. Вместо нечитаемой лицензии в диалоге дать ссылку на нечитаемую лицензию на сайте -- преступление века. Юзер, я вам скажу, просто НЕ ЗАМЕТИТ разницы. Или вы про что? Какие ещё "любые средства" имеются в виду?

S>>>>Самое трудоёмкое там -- зарегистрироваться в установленных программах, чтобы uninstall стандартный был.


S>>в установщике, сделанном по описанной выше схеме, это [должно быть] самое трудное.


ЕМ>Такое возможно, если установщик написан на готовом GUI-фреймворке. У меня он на голом WinAPI, где интерфейсные взаимодействия по определению реализуются значительно сложнее, чем регистрация в Uninstall.


А я на это уже заранее написал:

S>В наши дни обычно делают кастомный мини-инсталлятор. Кстати, на голом WinAPI (чтобы не тащить зависимости к установщику) пишется меньше, чем за день.


WinAPI, конечно, не HTML, но на нём тоже делаются хорошие интерфейсы. Уж всяко лучше, чем на некоторых якобы оконных фреймворках. (Я про MFC. MFC классный, но я ни разу не видел, чтобы его кто-то использовал по назначению. Всегда тащат, как обёртку над WinAPI). В свою очередь, в чисто гуишной части самое трудное, насколько я помню -- красивые полупрозрачные тени (на десктоп), но и они программируются довольно быстро. Код установщика со всеми логотипами, ресурсами, png'шками и градиентами получился... а вот не вспомню сколько, но точно меньше 500К. Минимально поддерживалась XP SP2. Возможно, с 2K это действительно будет труднее, если у вас поддерживается старина винтукей, я пас.

Там, кстати, такая история была, если хотите. Поскольку основной продукт опирался на GUI-фреймворк (да, при наличии выбора я, разумеется, выбираю ML), я изначально собирался dll'ку фреймворка засунуть в ресурсы установщика и юзать при установке, а в ходе установки дополнительно копировать в целевую папку. Потом мне пришла идея ещё лучше -- сделать копии. В ресурсах одна, в наборе устанавливаемых файлов -- другая. Компрессор умный, он догадается. Так и получилось, оверхед составил что-то десятичного порядка 100К при размере dll в несколько мегабайт, что было определённо допустимо. Но коллеги попросили сделать установщик универсальным, что я и в итоге сделал.

И ещё кое-что. Я тут вспомнил, что не всё так просто с регистрацией, как вы пытаетесь представить. Надо ещё restore point создавать, а может и ещё чего-то. Эту часть писал не я, и слава богу. Знать администрирование виндов на ять (как себя вести в safe mode? вписаться в бэкапирование? в чужие сборочные пакеты? стандартные ключи командной строки?) -- по-моему, легче красивые тени делать.

S>>Если вам это не кажется самым трудным, возможно, стоит задуматься

ЕМ>Да, я уже задумывался, и пытался делать на фреймворках. Пока не понравился ни один. На WinAPI — просто писанина и лишний код, на фреймворках — или борьба с неочевидными косяками (MFC, WTL), или неадекватный размер бинарников (Qt).

Какая часть вам кажется трудоёмкой? Спрашивайте, я подскажу. (Если вспомню, конечно). Фон -- WHITE_BRUSH в оконном классе. Тени -- 3 png. Кнопку нарисовать? OWNER_DRAW + png.

S>>Таким был, если мне не изменяет память, установщик Chrome, пока они его ещё больше не упростили.

S>>он вообще молча всё ставит без вопросов.
ЕМ>Вот за это авторы установщиков, подобных Chrome, должны вечно гореть в аду, предварительно подвергшись четвертованию.

Ну, я бы так делать не стал.

S>>>>3. Чуть ниже другая кнопка, поменьше: Options, которая при нажатии меняется на поле выбора папки.

S>>что кнопка Options меньше замусоривает окно, чем само поле с абракадаброй "Program Files (x86)" или "Users\%UserName%"

ЕМ>Тогда она должна называться не Options, а Directory, или как-то еще. Options, по смыслу — это различные опции.


А когда техподдержка советует подуть в провод питания, она на самом деле борется с пылью, ага.
Do you want to develop an app?
Re[8]: Пределы глупости человеческой :)
От: Shtole  
Дата: 20.09.20 09:15
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>ИМХО, винда ненавязчиво намекает, что удалять глючнософт надо ролбэками, а не новыми транзакциями.

ЕМ>Об этом она намекает только в отношении софта, глубоко внедряющегося в систему.
S>>Кстати, это к вопросу о регистрации в списке программ и что в него входит -- restore point надо создавать.
ЕМ>Для каждой программы — не нужно.

Я со своей стороны люто ненавижу установщики, которые этого не делают. В аду четвертовать и так далее. Кстати, некоторые эгоистично считают, что их надо создавать для программы, которая может покоцать систему. На самом же деле, юзер хочет видеть, куда ему откатываться, после установки следующей глючно-системной программы, которая этого НЕ сделала (на то она и глючная, хе-хе), чтобы потерять по минимуму установленного софта.
Do you want to develop an app?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.