![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как не дать Windows завершить работу. Приложение на чистом API.
Mazenrat © (2002-09-08 16:38:00)Здравствуйте.
Вообщем не выходит у меня поймать завершение работы Windows (WM_QUERYENDSESSION). Вообще не ловиться даже WM_QUIT. Вот как я всё делаю:
function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer;
stdcall; export;
begin
Result := 0;
if uMsg = TaskBarCreated then
TaskBarAddIcon(hWnd, ICON_ID, LoadIcon(hInstance, "MAINICON"), WM_TASKBAR, Hint);
case uMsg of
WM_QUERYENDSESSION: begin
if messageBox(0,"Выйти из Windows?","Выход",MB_YESNO)=ID_NO
then Result := integer(FALSE)
else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); end;
WM_COMMAND: case wParam of
ID_CLOSE: PostMessage(hWnd, WM_DESTROY, 0, 0);
ID_OPENCD: begin {------} end; end;
WM_TASKBAR: case wParam of
ICON_ID: case lParam of
WM_RBUTTONDOWN: PopupMenu(hWnd); end; end;
WM_DESTROY: begin PostQuitMessage(0); Exit; end;
end;
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
Mazenrat (2002-09-08 19:44:00) [1]А что за копонент? Я имею ввиду название модуля.
Endre (2002-09-08 19:42:00) [2]В наборе компонент Rx есть штучка, которая отлавливает все сообщения. Можешь посмотреть исходники этого компонента, если его у тя нет, пиши frost@dimbus.com, я тебе его скину.
Mazenrat (2002-09-08 18:30:00) [3]Предчуствую, что ответами и не запахнет.
Anatoly Podgoretsky (2002-09-08 17:25:00) [4]А ты представь такие вещи как UPS и представь, что будет с моей системой если ты воспрепятствуешь ее завершению
Mazenrat (2002-09-08 17:11:00) [5]Ну, так прямо к стенке не нужно. А как правильно-то?
Anatoly Podgoretsky (2002-09-08 16:49:00) [6]Да тебя сразу к стенке, а программу в корзину и как можно быстрее