Выключение компьютера |
Здравствуйте, гость ( Вход | Регистрация )
Выключение компьютера |
FenixTES |
14.11.2009, 22:36
Сообщение
#1
|
Студент Группа: Участник Сообщений: 20 Регистрация: 14.11.2009 Пользователь №: 1230 Спасибо сказали: 0 раз(а) Репутация: 0 |
у меня есть две задачи, новот не знаю как их реализовать, наверное через винапи:
1) Поймать синал выключения 2) Послать сигнал выключения |
|
|
Litkevich Yuriy |
15.11.2009, 7:14
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Если ты собираешся выключать компьютер программой, то зачем и откуда тебе ловить сигнал выключения?
|
|
|
Elfinit |
15.11.2009, 13:13
Сообщение
#3
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
ShellExecute("shutdown -t 00 -s");
другой пример: http://www.codersource.net/mfc_shutdown_timer.html если под "сигналами" имелись ввиду winapi-сообщения, то посмотри WM_ENDSESSION |
|
|
FenixTES |
15.11.2009, 13:28
Сообщение
#4
|
Студент Группа: Участник Сообщений: 20 Регистрация: 14.11.2009 Пользователь №: 1230 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Elfinit |
15.11.2009, 13:58
Сообщение
#5
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
унаследуй от QApplication, определи там winEvent, отлавливай WM_ENDSESSION (или WM_QUERYENDSESSION, вроде).
Сообщение отредактировал Elfinit - 15.11.2009, 14:01 |
|
|
Litkevich Yuriy |
15.11.2009, 14:22
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Elfinit |
15.11.2009, 15:29
Сообщение
#7
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
|
|
|
Litkevich Yuriy |
15.11.2009, 16:26
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А есть какая-нибудь возможность перехватить это системное событие и попросить ось "немного подождать"?) даже не знаю, иногда виндовоз по долгу не выключается, стало быть кого-то ждёт. В лине обычно тактика такая:* Посылается широковещательный (т.е. всем) сигнал "Завершить приложение" * ждём 10сек * Посылается широковещательный сигнал "убить всех" * Выкл. компьютер |
|
|
MoPDoBoPoT |
15.11.2009, 16:42
Сообщение
#9
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Есть методы QApplication::commitData() И QApplication::saveState(), которые вызываются при завершении сеанса работы в операционной системе. В качестве параметра эти методы получают объект класса QSessionManager, у которого есть метод cancel(), прекращающий процесс выхода (у Шлее про это немного написано).
|
|
|
Текстовая версия | Сейчас: 3.1.2025, 8:25 |