Как может узнать приложение что его собираются закрить?

Тема в разделе "WASM.BEGINNERS", создана пользователем XshStasX, 28 окт 2008.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    помогите придумать как зделать чтоб приложение могло узнать что его сейчас закроют,приложение не использует в присвоей работе форму,и еще надо узнать тот момент когда комьютер собирается виключится/завершить сеанс и когда хотят мою программу закрить через диспетчер задач на вкладке процесы.
     
  2. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    XshStasX для обработки виндовых сообщений зарегистрируй класс окна и проверяй когда приходит команда закрытия, винда также рассылает окнам сообщения при попытке завершения работы. Ну а диспетчер я насколко знаю можно победить только хуком апишек.
     
  3. Coderess

    Coderess New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    41
    WM_ENDSESSION
    http://msdn.microsoft.com/en-us/library/aa376881(VS.85).aspx


    http://msdn.microsoft.com/en-us/library/aa376881(VS.85).aspx
     
  4. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Можешь "одолжить" окно у другого приложения, если своё создавать ну никак не хочется.
     
  5. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    ты имеешь ввиду кинуть хук на это окно???
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    XshStasX
    Нет. Обычно, если чего-то "никак не хочется", то на это кладут (или иногда забивают) хук. Соответственно не кинуть хук на это окно, а положить.
     
  7. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    XshStasX, оно самое.
     
  8. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Ну тут вариантов не много либо из юзермода перехватывать NtTerminateProcess/Thread, но тогда понадобится инжэктится во все процессы и отлавливать создаваемые, либо установить пару хуков в ядре что гораздо проще, для того что б оповестить приложение о том что его пытаются закрыть можно заюзать LPC либо ивент и секцию разделяемой памяти в которой будет сообщение.