Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перезагрузка по окончанию установки (SetupProject), Запрос на перезагрузку. 
V
    Опции темы
Hmm3
Дата 14.1.2010, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



В MS VS 2008 создаю Setup Project. Как сделать так, чтобы установщик после окончания установки выдавал запрос на перезагрузку? (в духе "Требуется перегрузить компьютер. Вы хотите это сделать сейчас?")
PM MAIL   Вверх
Sfate
Дата 14.1.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Angry Beaver
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 7.9.2008
Где: mov AL, BL

Репутация: нет
Всего: нет



обычным  мессаджбоксом...
Код

            using System.Management;//подключаем
...
            string message = "Устновка прошла успешно.\nПерезагрузить компьютер сейчас?";
            string caption = "На финишной.";
            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            DialogResult result;

            result = MessageBox.Show(message, caption, buttons);

            if (result == System.Windows.Forms.DialogResult.Yes)
            {
                ManagementBaseObject outParams = null;
        ManagementClass os = new ManagementClass("Win32_OperatingSystem");
        os.Get();
        os.Scope.Options.EnablePrivileges = true;
        ManagementBaseObject inParams = os.GetMethodParameters("Win32Shutdown");
        {
            inParams["Flags"] = "2";
        //inParams["Flags"] = "0"; // log off
        //inParams["Flags"] = "1"; // shutdown
        //inParams["Flags"] = "2"; // reboot
        }
        foreach (ManagementObject mo in os.GetInstances())
            outParams = mo.InvokeMethod("Win32Shutdown", inParams, null);
            }
...

вот скромный пример;))

--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown
PM MAIL WWW ICQ   Вверх
Hmm3
Дата 15.1.2010, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Цитата(Sfate @ 14.1.2010,  23:01)
обычным  мессаджбоксом...

А как добавить MessageBox в SetupProject? 
Или имеется в виду написать отдельно программу и запустить в конце установки?

Это сообщение отредактировал(а) Hmm3 - 15.1.2010, 13:14
PM MAIL   Вверх
Sfate
Дата 15.1.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Angry Beaver
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 7.9.2008
Где: mov AL, BL

Репутация: нет
Всего: нет



Цитата(Hmm3 @  15.1.2010,  13:13 Найти цитируемый пост)
А как добавить MessageBox в SetupProject? 
это была ирония?
вышеприведенный код, кроме строчки "using System.Management;" (его в самом начале кода smile), пихаешь после нажатия кнопки финиш в сетапнике... или как там у тебя...


Цитата(Hmm3 @  15.1.2010,  13:13 Найти цитируемый пост)
Или имеется в виду написать отдельно программу и запустить в конце установки?
ну... я думаю... это лишнее...
--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown
PM MAIL WWW ICQ   Вверх
gambit
Дата 17.1.2010, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



 smile что же ты такое написал, что требует перезагрузки???
PM MAIL ICQ Skype   Вверх
vikrorpert
Дата 17.1.2010, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



может просто месадж бокс показать и предложить вручную перегрузиться?
PM MAIL   Вверх
gambit
Дата 18.1.2010, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(vikrorpert @  17.1.2010,  02:36 Найти цитируемый пост)
может просто месадж бокс показать и предложить вручную перегрузиться? 

а может все программы так писать? Word - запускаешь, вылазиет message box - "Пишите на листочке".
PM MAIL ICQ Skype   Вверх
Sfate
Дата 18.1.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Angry Beaver
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 7.9.2008
Где: mov AL, BL

Репутация: нет
Всего: нет



 smile gambit, что не так? большинство setup'ов выдают запрос на перезагрузку, чтобы учесть изменения в реестре...
--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown
PM MAIL WWW ICQ   Вверх
Hmm3
Дата 18.1.2010, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Цитата(Sfate @ 15.1.2010,  18:46)
Цитата(Hmm3 @  15.1.2010,  13:13 Найти цитируемый пост)
А как добавить MessageBox в SetupProject? 
это была ирония?
вышеприведенный код, кроме строчки "using System.Management;" (его в самом начале кода smile), пихаешь после нажатия кнопки финиш в сетапнике... или как там у тебя...

Нет, не ирония. 

По порядку, что я делаю:

1) Создаю Setup Project в Microsoft Visual Studio 2008 (Other Project Types --> Setup Project).
2) Добавляю файлы (file system), custom actions и т.п.
3) Ну и последний вопрос стоит с перезагрузкой.
За связь с пользователем отвечает User Interface, но там можно только добавлять текст. 
Можно добавлять также различного рода диалоги, но тоже только текст. Как добавить код или выдать запрос я так и не понял. 

Если можно распишите по шагам.
PM MAIL   Вверх
gambit
Дата 18.1.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(vikrorpert @  17.1.2010,  02:36 Найти цитируемый пост)
предложить вручную перегрузиться? 


Цитата(Sfate @  18.1.2010,  14:20 Найти цитируемый пост)
большинство setup'ов выдают запрос на перезагрузку

В одном случае спрашивается разрешение на перезагрузку, в другом предлагается перегрузиться, чувствуете разницу?

вот только зачем нужна перезагрузка по окончанию сетапа я никогда не понимаю. Я могу понять рестарт при установке драйверов, но начиная(а может и раньше) с хр и драйвера работают без перезагрузки.
PM MAIL ICQ Skype   Вверх
Heinzz
Дата 18.1.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 3
Всего: 9



Цитата(Hmm3 @  18.1.2010,  18:37 Найти цитируемый пост)
 Как добавить код 

нужно создать свой инсталятор
MSDN


--------------------
user posted image
PM MAIL   Вверх
Sfate
Дата 18.1.2010, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Angry Beaver
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 7.9.2008
Где: mov AL, BL

Репутация: нет
Всего: нет



Цитата(gambit @  18.1.2010,  21:39 Найти цитируемый пост)
вот только зачем нужна перезагрузка по окончанию сетапа я никогда не понимаю. Я могу понять рестарт при установке драйверов, но начиная(а может и раньше) с хр и драйвера работают без перезагрузки.
работают но не всегда... точнее не все...
как я понимаю перезагрузка используется из-за "этики"... 
также отличить рядовому юзверю, требуется ли реально перезагрузка невозможно...
как говорится, издержки производства;))
--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown
PM MAIL WWW ICQ   Вверх
Hmm3
Дата 26.1.2010, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Всем спасибо, все получилось. Правда немного странновато:
Создаю dll, в ней наследую class Installer (более подробно обо всем этом 
здесь), в классе уже подписываюсь на событие, а в обработчике события уже и вывожу запрос на перезагрузку. 
Просто была надежда, что все это решается маленькой галочкой где-нибудь в настройке проекта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0803 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.