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

Вниз

Трабл: Программа не дает выключить комп   Найти похожие ветки 

 
freeborn   (2003-08-24 22:00) [0]

Здравствуйте !!

Написал я программу, которая сидит в трее. При попытке вырубить комп, он не вырубается. Когда закрываешь прогу, только тогда вырубается. Помогите, профи !!

Александр aka freeborn.


 
Sheng ©   (2003-08-24 22:14) [1]

Попробуй отловить WM_QUERYENDSESSION, на нём повесь пранудительное закрытие программы.


 
freeborn   (2003-08-24 22:17) [2]

уже пробовал. не помогает. при этом в на close и destroy прога ничего не делает. правда есть таймер (всл), который проверяет мейл через поп3. вот и вся кухня. помогите плз. спасибо !!


 
Guerrillero ©   (2003-08-24 22:23) [3]

или WM_ENDSESSION


 
sniknik ©   (2003-08-24 22:27) [4]

Sheng © (24.08.03 22:14) [1]
Попробуй отловить WM_QUERYENDSESSION, на нём повесь принудительное закрытие программы.
Guerrillero © (24.08.03 22:23) [3]
или WM_ENDSESSION

от себя, а лутше не или а и.


 
Dimka Maslov ©   (2003-08-25 09:17) [5]

Такое иногда бывает, когда есть соединение через сеть. Если сокет открыт, то система сосздаёт поток, который и обрабатывает сообщение WM_QUERYENDSESSION не давая системе выключиться или перезагрузиться. Лечение проблемы - принудительное закрытие сокета при получении WM_QUERYENDSESSION. Причём закрывать сокет лучше в Application.OnMessage по идее он должен получить зто сообщение в первую очередь.


 
Zergling ©   (2003-08-25 11:03) [6]

У меня такая же грабля. У меня закрывается при условии: программу свернутую в трее вызываю (разворачиваю), а затем опять сворачиваю в трей. После этого Alt+F4 и все закрывается. Если этих действий не проделать, то прга не сворачивается. Программа работает с сетью, но сокетов я не использую. В чем может быть проблема?

freeborn ты примерчик случаем не из книги "Дельфи и технология COM" брал. У меня из этой книги.


 
Карелин Артем ©   (2003-08-25 14:04) [7]

Этим прославились компоненты от NetMasters. В дельфи имеют прификс NM...


 
Fay   (2003-08-25 20:04) [8]

OnCloseQuery водится?


 
Zergling ©   (2003-08-27 06:12) [9]

Извеняйте за такое опоздание. Забыл про эту веточку!

Fay (25.08.03 20:04) [8]

В OnCloseQuery у меня MessageDlg для поддверждения закрытия программы. Взависимости ответа определяется закрыть приложение или нет.


 
Alex No   (2003-08-27 09:17) [10]

to: freeborn
Скорее всего у тебя NMPOP3 используется. Выкинь его и возьми с вкладки Indy Clients.

А сам обработчик примерно так можно сделать:


protected
procedure IsWindowsShutDown(Var Msg:TMessage); message WM_ENDSESSION;

procedure TMain_Form.MyExitProc;
var ini : TIniFile;
begin
ini:=TIniFile.Create(IniName);
ini.WriteInteger("Form", "Left", Left);
ini.WriteInteger("Form", "Top", Top);
ini.WriteInteger("Form", "Height", Height);
ini.WriteInteger("Form", "Width", Width);
ini.Free;

try
if MyPOP.Connected then
MyPOP.Disconnect;
except
end;
end;

procedure TMain_Form.IsWindowsShutDown(Var Msg:TMessage);
Begin
WriteLog(true, true, "WINDOWS", "ОС Windows завершила работу");
Msg.Result:=10; // типа > 0
Close;
End;

procedure TMain_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MyExitProc;
end;


В этом случает при пользовательском закритии проги, либо когда винда завершается выполняются одни и те же действия "корректного" завершения работы проги.
Примерно так. Ну у меня так ;)


 
Verg ©   (2003-08-27 11:26) [11]

Я делаю так: В главной форме есть поле ShutDown :boolean;
В обработчике WM_QUERYENDSESSION устанавливаю эту переменную в true и вызываю inherited
А в OnCloseQuery проеверяю:
if not ShutDown then
begin
// тут запросы юзеру типа "вы уверены?"
Если что - CanClose:=false;
end;
if CanClose then
begin
//закрываю БД, освобождаю ресурсы и проч.
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-41336
Suharew
2003-10-30 22:12
2003.11.13
Командная строка


14-42129
stud
2003-10-22 09:44
2003.11.13
где можно найти таблицу сигналов системного динамика?


1-41140
bon
2003-11-03 15:02
2003.11.13
Свойства


1-41273
First_May
2003-10-31 09:20
2003.11.13
TActiveForm


3-40921
Sam Stone
2003-10-19 16:06
2003.11.13
mdb