Главная страница
    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.47 MB
Время: 0.034 c
14-41981
Иван Шихалев
2003-10-19 15:38
2003.11.13
Издательство


14-41913
Омлет
2003-10-19 15:40
2003.11.13
Именинники 19 октября!


9-40774
_WolfHound_
2003-04-30 22:06
2003.11.13
Форум


3-40815
Лена
2003-10-21 11:49
2003.11.13
ошибка key violation


3-41089
AlexGreG
2003-10-23 10:11
2003.11.13
... Куда подевались установленные свойства? :o( ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский