Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WM_QUERYENDSESSION [D7, WinXP]


Страницы:   1 2

Андрей Молчанов ©   (2005-08-21 12:35:00) 

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

Я хочу, чтобы при выходе из Windows моя программа выполнила копирование некоторых довольно больших файлов. Пишу:

 protected
   procedure WMShutDown(var msg: TMessage); message WM_QUERYENDSESSION;
...
procedure TfrmMain.WMShutDown(var msg: TMessage);
begin
 msg.Result := 0;
 try
   Logoff := True;
   tmrSchedulerTimer(Self);
 finally
   msg.Result := 1;
 end;
end;

При этом появляется окно Windows - "Невозможно завершить программу, завершить сейчас?". Что делать? Пожалуйста, подскажите.


GuAV   (2005-08-21 13:46:00) [21]

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


Андрей Молчанов   (2005-08-21 13:37:00) [22]

Так я сначала спрошу пользователя, хочет ли он бэкапить данные.
К тому же опция по умолчанию будет выключена. А все же, как это можно осуществить?


Anatoly Podgoretsky   (2005-08-21 13:34:00) [23]

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


Андрей Молчанов   (2005-08-21 13:31:00) [24]

Программу (предназначена для резервного копирования данных) предполагается распространять.
Я хочу добавить возможность выполнения резервного копирования перед выходом из системы.
Может быть можно узнать, как именно пользователь хотел выйти (перезагрузка, выход из сеанса, выключение)?


DrPass   (2005-08-21 13:25:00) [25]

Если это предназначено только для твоей машины, то нужно увеличить в Windows время ожидания завершения программ, чтобы его хватало на завершение работы. Это можно сделать с помощью большинства твикеров.
Если программу предполагается распространять, то лучше переделать ее таким образом, чтобы она не занималась длительными операциями при завершении работы.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо