Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.13;
Скачать: CL | DM;

Вниз

Узнать о Выключении компьютера   Найти похожие ветки 

 
Frojok   (2006-07-25 01:34) [0]

Можно ли как нибудь с помощью Дельфи узнать о том
что пользователь нажимает на кнопку Выключить или Перезагрузить


 
KilkennyCat ©   (2006-07-25 01:37) [1]

Да. Делфи вполне может работать с веб-камерой. Главное, расположить вебкамеру таким образом, чтобы юзер не заслонил. Сложнее с брэндовыми корпусами - на них только одна кнопка.


 
Frojok   (2006-07-25 01:42) [2]

Да я про кнопки которые
в ПУСК>ВЫКЛЮЧЕНИЕ дурачок :)
т.е проге надо  отследить   подачу команды на выключение или перезагрузку компа и
выполнить определённые действия


 
KilkennyCat ©   (2006-07-25 01:45) [3]

Я хоть и дурачок, а яндексом пользоваться умею.
с винграда нарыто:

конецформыначалоформыС Windows отсылает перед перезагрузкой, выключением или сменой пользователя сообщения WM_QUERYENDSESSION, а потом по его успешному завершению WM_ENDSESSION. Наше приложение должно поймать эти сообщения и отреагировать так чтобы дать понять, что мы согласны перезагружаться. В частности на сообщение WM_QUERYENDSESSION мы должны вернуть не 0: The WM_QUERYENDSESSION message is sent when the user chooses to end the Windows session or when an application calls the ExitWindows function.  If any application returns zero, the Windows session is not ended. Windows stops sending WM_QUERYENDSESSION messages as soon as one application returns zero. Практически мы уже здесь можем завершить свою программу. В случае если те действия, которые выполняются при наступлении перезагрузки не велики по величине времени их выполнения, можно не обрабатывать WM_QUERYENDSESSION, а обойтись просто сообещением WM_ENDSESSION.  В параметре WParam этого сообщения поступает как раз тот результат, который мы вернули (или не вернули) из сообщения WM_QUERYENDSESSION: Код protected procedure IsWindowsShutDown(var Msg: TMessage);WM_ENDSESSION; .. procedure TForm1.IsWindowsShutDown(var Msg: TMessage); begin inherited; if Msg.WParam = 1 then MainForm.Close; // выгружаем приложение End;  Если нам нужно что-то сделать ещё (например удалить какой-либо файл или записать какую-нибудь информацию), применительно для вышеприведённого примера это можно сделать в обработчиках onCloseQuery/onClose формы. Процедуру IsWindowsShutDown() мы должны описать в классе того окна, которое будет принимать данное сообщение т.е. формы. "; Song "; ";


 
Юрий Зотов ©   (2006-07-25 01:46) [4]

WM_ENDSESSION
WM_QUERYENDSESSION



Страницы: 1 вся ветка

Текущий архив: 2006.08.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
9-1132946060
Кефир87
2005-11-25 22:14
2006.08.13
Когда бокс больше чем фрустум


3-1149574047
q-q
2006-06-06 10:07
2006.08.13
Используя ЗАБОЙ, полю присваивается NULL, а хотелось бы НОЛЬ


3-1149842955
ANB
2006-06-09 12:49
2006.08.13
Как сделать одним оператором (oracle) ?


15-1153145303
Pazitron_Brain
2006-07-17 18:08
2006.08.13
Подскажите, пожалуйста, конвертер


15-1153202637
ПЛОВ
2006-07-18 10:03
2006.08.13
Даже и не думал!