Укпукп Керпукп
14 повідомлень
#14 років тому
Нужно отправлять сообщение перед закрытием приложения (программа работает на .NET)

Если приложение закрывается по CTRL+F4 или по нажатию на Х в верхнем правом углу главного окна то отправить сообщение можно используя вот этот прием:

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
SendStatus(EnumStatus.Close)
End Sub

- также этот код вызывается при программном завершении работы программы (application.exit me.close (для Visual Basic .Net)


Но как перехватить сигнал о завершении приложения и отрпавить статус программы на сервер если программу закрывают через диспетчер задач (ctrl + alt + del), или если программно использовать функции End или Environment.Exit(-1) (функции Visual Basic .Net) ??
Евгений О.
2989 повідомлень
#14 років тому
В Windows надо ловить системное сообщение WM_CLOSE.
Олег Казакевич
702 повідомлення
#14 років тому
Цитата ("redandyellowdays"):
Но как перехватить сигнал о завершении приложения и отрпавить статус программы на сервер если программу закрывают через диспетчер задач


Только из другого процесса.
Например, используя wait-функции, ждать на хэндле процесса.
Или, если процесс запущен как служба, настроить failure actions (ChangeServiceConfig2).
Укпукп Керпукп
14 повідомлень
#14 років тому
Цитата ("okman"):
Только из другого процесса.
Например, используя wait-функции, ждать на хэндле процесса.
Или, если процесс запущен как служба, настроить failure actions (ChangeServiceConfig2).


Большое спасибо, что объяснили.