![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_QUERYENDSESSION [D7, WinXP]
Андрей Молчанов © (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 время ожидания завершения программ, чтобы его хватало на завершение работы. Это можно сделать с помощью большинства твикеров.
Если программу предполагается распространять, то лучше переделать ее таким образом, чтобы она не занималась длительными операциями при завершении работы.