![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перезагрузка - это... [D6, Win95/98, Win2k, WinXP]
МитяЙ2 © (2002-06-14 13:21:00)Как определить, например в методе
FormCloseQuery главной формы, что
собирается cделать Windows:
1. Перезагрузить?
1.1. комп
1.2. windows
2. Выключить комп?
3. Завершить сеанс?
С уважением, Митяй
dim@uic.asu.ru
mitiai@rol.ru
aus (2002-06-18 22:43:00) [1]
procedure TfmCD.WMEndSession(var M: TWMEndSession);
var
...
begin
inherited;
ShowMessage(" lpar: "+IntToStr( Msg.lParam)+"wpar: "+IntToStr( Msg.wParam));
здесь нет ошибки?
Romkin (2002-06-18 15:42:00) [2]if M.EndSession then <Это конец сессии> else <завершение работы или перезагрузка>
Как отличить перезагрузку от выключения - не знаю :-((
МитяЙ2 (2002-06-18 14:44:00) [3]Что-то я не понял? Поясни... А вообще приятно получать ответы
оперативно и от МАСТЕРА.
Я создал
...
private
procedure WMEndSession(var M: TWMEndSession);
message WM_EndSession;
...
...
...
procedure TfmCD.WMEndSession(var M: TWMEndSession);
var
...
begin
inherited;
ShowMessage(" lpar: "+IntToStr(Msg.lParam)+" wpar: "+IntToStr(Msg.wParam));
// И через параметры ничего не могу узнать
.
.
.
.
end;
Romkin (2002-06-18 11:19:00) [4]TWMEndSession = packed record
Msg: Cardinal;
EndSession: LongBool;
Unused: Longint;
Result: Longint;
end;
Это из Messages. Видно, что lParam не используется, хотя в SDK другое ???
МитяЙ2 (2002-06-18 10:42:00) [5]Спасибо, Romkin
Не знаю, но почему-то
перезагрузка : lParam=0, wParam=0
выключение : lParam=0, wParam=0
logout : lParam=0, wParam=FF80000000
В чём может быть дело? Использую сейчас Win98 SE
Romkin (2002-06-14 13:30:00) [6]В приложение посылаются сообщения - WM_QUERYENDSESSION, WM_ENDSESSION - окончание сессии
lParam - указывает, logout or shutdown