PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Как программе получить информацию, что её принудительно закрывают


Как программе получить информацию, что её принудительно закрывают

Сообщений 1 страница 10 из 10

1

Как программе получить информацию, что её принудительно закрывают, например, через диспетчер задач?

0

2

Никак. Уверен, что Windows просто освобождает память блокируя взаимодействие с памятью выделенной программе, и с момента поступления команды на убийство программа не выполняет ничего. Эта команда не является нормальной работой программы, это вынужденная мера для зависших программ (и не важно что она не зависла, с ней будет тоже самое). Нормальной работой может быть событие завершения Windows, когда Windows высылает всем программа событие, что Windows завершает свою работу и даёт на это 20 секунд. Программист прописывает в программе что программа будет делать за это время, например сохраняет в ini-файл текущее состояние или сбрасывает кэш обработанных данных. Если не успеет, то с ней будет тоже что убийство, хотя при завершении Windows спрашивает хотите ли вы всё равно завершить, то есть последнее слово за вами, и Windows не ограничивает временем.

0

3

Спасибо за ответ. На самом деле требуется поймать завершение программы при выключени ОС. ОС просто закрывает программу и событие #PB_Event_CloseWindow не ловится.

0

4

помню что там есть какое-то событие... только забыл какое :) примеры на старом компьютере. не под рукой. но точно есть какое-то событие, так как я такое делал.

0

5

https://learn.microsoft.com/en-us/windo … endsession

На сегодня кажется нужно разбираться с каждой версией windows отдельно.
Кстати например IDE PB не даёт завершить систему, если есть не сохранённые исходники, так что есть где поискать как это делается на PB.

...\Git\purebasic\PureBasicIDE\WindowsMisc.pb содержит #WM_QUERYENDSESSION в Procedure MainWindowCallback(Window, Message, wParam, lParam)

Отредактировано useful (12.09.2025 19:01:07)

0

6

https://forum.boolean.name/showthread.php?t=18559

0

7

https://www.purebasic.fr/english/viewtopic.php?t=78018

0

8

AZJIO написал(а):

https://www.purebasic.fr/english/viewtopic.php?t=78018

Это работает!

0

9

Rjevsky написал(а):

Это работает!

Это не принудительное закрытие. Попробуйте завершить через диспетчер задач и посмотрите узнает ли об этом приложение.

0

10

Мне требовалось поймать момент завершения программы при завершении работы ОС. Изначально вопрос стоял иначе, т.к. я не подозревал, что существует разница

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Как программе получить информацию, что её принудительно закрывают