powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Setup в Setup-е + "перезагрузить компьютер сейчас" из внутреннего Setup
2 сообщений из 2, страница 1 из 1
Setup в Setup-е + "перезагрузить компьютер сейчас" из внутреннего Setup
    #37196310
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для установки проги использую следующую конструкцию Setup2 в Setup1:

Setup1 (не имеет uninstaller-а)
1) Распаковывает в %temp%\proga файлы : setup2.exe, preinst.exe + чего-то еще
2) Запускает preinst.exe и ждет его завершения
3) Удаляет папку %temp%\proga что установлена в пункте 1) со всем содержимым командой
Код: plaintext
cmd /c rd "%TempDir%\proga" /s /q
4) Выходит

preinst.exe (процедуры, выполняемые перед Setup2)
1) Запускается
2) Чего-то делает, напр. разбирается с пред.версией, устанавливает .NET Framework и т.д.
3) Если user все сделал как надо в п.2) запускает основной setup2.exe, при этом ждет завершения setup2
4) Выходит

setup2.exe (собственно инсталлер)

Почему так сложно, объяснять долго, но суть в чем:
На момент работы Setup2 его контролирует preinst.exe, а его в свою очередь ждет setup1.
Setup1 должен подчистить %temp%\proga

В Setup2 есть в конце стандартная опция
1) перегрузить сейчас (вообще говоря это надо)
2) перегрузить позже

Если "позже", то все всегда срабатывает, т.е. %temp%\proga удаляется (ради чего все навороты)

Если "перегрузить сейчас ", то на Win7/Vista -все корректно,

а на XP/2003 может быть проблемка :
1) кратковременное появление системного msg что cmd не сработала
2) ну и (возможно,не обязательно) не удаление %temp%\proga

Т.е. конструкция не успевает до-работать , когда уже дана команда Reboot из внутреннего основного Setup2
Setup2 это та матрешка, кот. внутри всех остальных.

Setup1; Setup2 - Smart Install Maker
preinst.exe - прога на VB6

Что можно придумать (в алгоритме, на VB6 и т.п.)?
%temp%\proga -этот мусор оставлять в системе неохота
...
Рейтинг: 0 / 0
Setup в Setup-е + "перезагрузить компьютер сейчас" из внутреннего Setup
    #37196504
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Setup2 это та матрешка, кот. внутри всех остальных...
%temp%\proga -этот мусор оставлять в системе неохота
Короче убрал я эту вложенность и получилось:

Setup1
1) Распаковывает в %temp%\proga файлы : setup2.exe, preinst.exe + чего-то еще
2) Запускает preinst.exe
3) Выходит

preinst.exe
1) делает дела
2) запускает setup2 (если сочтет нужным)
3) выходит

Setup2
1) устанавливает прогу
2) выходит

Сама прога при первом запуске делает:
Код: plaintext
1.
2.
3.
4.
5.
        InitStart = GetRegValue(...
        If InitStart = "1" Then
            Shell "cmd /c rd " & Chr( 34 ) & GetEnvarVar("temp") & "\proga" & Chr( 34 ) & " /s /q", vbHide
...
            Exit Sub
        End If

В принципе это разумно, зачем устанавливать прогу, если ее не запускать, при первом запуске "мусор" сотрется.
Хотя...
>запускает setup2 (если сочтет нужным)
а если не сочтет нужным?
а если setup1 или setup2 будет отменен пользователем?
Тогда у него в temp будет лежать 30МБ лишнего "мусора"...
Хотя-ерунда наверно.

Я тут не такое видел:

Скачиваю очередной билд очень известной раскрученной проги
и не заметил, что в силу идиотской!!! ошибки разработчиков, а именно
default_path установлен как
\Program Files(x86)
вместо обычного
\Program Files(x86)\bla-bla-bla\la-la-la
ее значит устанавливаю.
Потом решил честно удалить через Uninstall.
Короче половина Windows 7 x64 была снесена в одно действие без возможности нормального восстановления системы.
Система слава богу была тестовая и пустая.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Setup в Setup-е + "перезагрузить компьютер сейчас" из внутреннего Setup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]