Корректное завершение работы при снятии задачи.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Корректное завершение работы при снятии задачи.

Сообщение Mikle » 13.10.2010 (Ср) 10:47

Программа из единственной формы, Visible=False, ShowInTaskBar=False. Программа ведёт лог, мне нужно, чтобы при завершении работы Windows лог сохранялся, однако события Form_Terminate, Form_Unload, Form_QueryUnload не обрабатываются. Подскажите простой способ (если есть).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Корректное завершение работы при снятии задачи.

Сообщение Хакер » 13.10.2010 (Ср) 10:56

Mikle писал(а):Form_QueryUnload

Проверь ещё раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Корректное завершение работы при снятии задачи.

Сообщение Mikle » 13.10.2010 (Ср) 16:05

А... при перезагрузке системы действительно срабатывает, а при снятии задачи через Диспетчер задач - не хочет, а я проверял именно так, чтобы не перезагружать. Можно это поправить? Хотя это уже не актуально, просто для интереса.
Вложения
test.zip
(1.33 Кб) Скачиваний: 40

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Корректное завершение работы при снятии задачи.

Сообщение iGrok » 13.10.2010 (Ср) 16:17

Снятии задачи, или снятии процесса?
При снятии процесса и не должно, а вот при снятии задачи - должно работать.

З.Ы. Более того, у меня твой пример работает.
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Корректное завершение работы при снятии задачи.

Сообщение Mikle » 13.10.2010 (Ср) 16:25

Да, через снятие процесса не работает, через снятие задачи - всё Ok.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Корректное завершение работы при снятии задачи.

Сообщение iGrok » 13.10.2010 (Ср) 17:45

Так и должно быть.
label:
cli
jmp label

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Корректное завершение работы при снятии задачи.

Сообщение arvitaly » 13.10.2010 (Ср) 18:28

Программа ведёт лог


Каким способом?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Корректное завершение работы при снятии задачи.

Сообщение Хакер » 14.10.2010 (Чт) 5:14

Mikle писал(а):Да, через снятие процесса не работает

Ну ещё бы :lol: В чём тогда смысл убийства процесса, если бы при этом кто-то ждал возможно зависший процесс, чтобы уведомить его, что его убьют.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Корректное завершение работы при снятии задачи.

Сообщение Mikle » 14.10.2010 (Чт) 8:48

Хакер писал(а):В чём тогда смысл убийства процесса, если бы при этом кто-то ждал возможно зависший процесс, чтобы уведомить его, что его убьют.

Ясно. В принципе мне достаточно, что корректно снимается задача.
arvitaly писал(а):Каким способом?

Как это каким? Записью в файл :)
То есть программа копит в буфер сообщения, при достижении некоторой границы буфер записывается в файл и обнуляется. При завершении работы нужно сбросить в файл недозаполненный буфер.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Корректное завершение работы при снятии задачи.

Сообщение Хакер » 14.10.2010 (Чт) 9:10

В чём смысл копить сообщения в буфере?

Если он есть (повторные обращения к лог-записям), предлагаю использовать файл-маппинги, а в качестве этого буфера использовать не просто выделенную память, а отображение куска лог-файла.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Корректное завершение работы при снятии задачи.

Сообщение Mikle » 14.10.2010 (Чт) 10:38

А если данные поступают постоянно, но маленькими порциями. Не красиво, когда комп постоянно моргает лампочкой "загрузка HDD".

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Корректное завершение работы при снятии задачи.

Сообщение Хакер » 14.10.2010 (Чт) 10:40

Ну, page-out (сброс страницы ФП на диск) оттягивается до последнего момента, поэтому, лапмочка не будет моргать постоянно, а только в действительно необходимых случаях или при вызове FlushViewOfFile.

Поэтому, ты можешь сам определиться, как часто вызывать FlushViewOfFile. В прочем, есть доля сомнений, что при терминации процесса page-out сделан не будет. Но это ведь легко проверить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Корректное завершение работы при снятии задачи.

Сообщение Mikle » 14.10.2010 (Чт) 17:07

Надо попробовать. Спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 111

    TopList