Вниз
Скачать: CL | DM;

Tray+Reboot   Найти похожие ветки 

← →
BJValentine ©   (2003-05-28 10:52) [0]

Завершаю работу на компе, а в трее у меня висит прога. Как можно сделать, чтобы прога закрылась когда пользователь решит выключить или перезагрузить комп?


← →
Мое имя   (2003-05-28 10:58) [1]

а чо-не закрываецца?


← →
BJValentine ©   (2003-05-28 11:00) [2]

В 2000 Pro - ждёт, пока не закрою. Мне понтно почему ждёт, а юзерам-нет.


← →
Song ©   (2003-05-29 08:25) [3]

WM_QUERYENDSESSION


← →
ppcat   (2003-05-29 09:34) [4]

Есть компонент CoolTrayIcon, там это все реализовано. Ну а если хочешь сам покопаться - смотри, что сказал Song + WM_ENDSESSION.
В обработчике WM_QUERYENDSESSION нужно как минимум вынуть иконку из трэя, но лучше еще послать главному окну своего приложения месидж типа "Закройся". А можно просто сказать Windows, что все в порядке вот так: msg.Result:= 1;


← →
Sceleton   (2003-05-29 15:24) [5]

Я обычно делаю просто, в обработчике события FormCloseQuery основной формы пишу примерно так:

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Begin
... операции, которые необходимо сделать перед закрытем программы...
Application.Terminate;
End;

У меня по крайней мере это срабатывает. Проверял в 98 и XP.


← →
BJValentine ©   (2003-05-29 15:36) [6]

А в W2k не спабатывает.

У меня получилось, программа закрывается, только вот система не завершает работу. Видать чего-то не хватает. А чего именно?


← →
Song ©   (2003-05-29 15:56) [7]

Не хватает вернуть правильный код на то сообщение что я написал.


← →
BJValentine ©   (2003-05-29 16:01) [8]

А какой именно код?


← →
Song ©   (2003-05-29 17:45) [9]

Почитай хэлп, там ясно всё написано.


← →
BJValentine ©   (2003-05-29 18:19) [10]

Там пишется, что нужно вернуть true, но delphi на это ругается.


← →
Song ©   (2003-05-29 22:27) [11]

True - это 1.
Если непонятно, то можно было так проверить - Integer(True)


← →
Alex Konshin ©   (2003-05-30 04:50) [12]

Ведь отвечал уже на этот вопрос, но не могу найти в поиске по сайту.

Суть в том, что надо завести булевскую переменную, которая контролирует спрашивать/не спрашивать и еще в правильной обработке WM_QUERYENDSESSION:

procedure TfmServerToolBar.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Init;
FQuietClose := True;
Message.Result := Integer(CallTerminateProcs);
Application.Terminate;
end;


← →
BJValentine ©   (2003-05-30 15:21) [13]

Спасибо, заработало



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
9-33035
R2D2
2003-02-10 16:39
2003.08.11
GLScene - режимы фильтрации текстур


14-33323
GebbelZ
2003-07-24 00:21
2003.08.11
дополнительные кнопки клавиатуры & WinAmp


9-33036
SergeN
2003-02-10 11:07
2003.08.11
С чего начать и стоит ли?


14-33354
Ткаченко Сергей
2003-07-16 11:35
2003.08.11
Не обновляется SQL запрос


9-33041
vivk
2003-02-05 09:27
2003.08.11
TerrainRenderer в GLScene




   Наверх