
Модератор: Модераторы
S_Gur писал(а):Господа, никто не сталкивался с подобной проблемой? Есть веб-сервер (основная идея взята отсюда https://wiki.lazarus.freepascal.org/fpWeb_Tutorial/ru). При запуске открывается консольное окно и мне надо управлять (в частности, на текущий момент) минимизацией и восстановлением этого окна. Хэндл я получил, сообщения посылаются нормально, но вот как и где их отловить, никак не могу найти. Подозреваю, что проблема эта того же порядка, что и проблема обработки закрытия этого окна (с помощью функции SetConsoleCtrlHandler), но уверенности нет...
S_Gur писал(а):При том, что хендл приложения я достаю и могу сам отправить ему команду на минимизацию.
Seenkao писал(а):Желательно найти цикл самого приложения и запросы делать оттуда. А вообще для этого создавали хуки. В Delphi это было популярное решение.
S_Gur писал(а):Shleps, простите, мне сейчас абсолютно неважно, куда пишется лог. Проблема совсем не в этом. Веб-сервер запускается в обычном системном командном окне. Это окно можно минимизировать, максимизировать, перетащить, изменить размер или просто закрыть крестиком. Именно эти системные сообщения (Hide, Restore, Minimize и прочие) мне надо отловить и обработать. При том, что хендл приложения я достаю и могу сам отправить ему команду на минимизацию. Вопрос в том, как к консольному приложению прицепить обработчик этих сообщений. Я сейчас играюсь с примером, описанным по этой ссылке:
S_Gur писал(а):Проблема совсем не в этом. Веб-сервер запускается в обычном системном командном окне. Это окно можно минимизировать, максимизировать, перетащить, изменить размер или просто закрыть крестиком. Именно эти системные сообщения (Hide, Restore, Minimize и прочие) мне надо отловить и обработать. При том, что хендл приложения я достаю и могу сам отправить ему команду на минимизацию. Вопрос в том, как к консольному приложению прицепить обработчик этих сообщений. Я сейчас играюсь с примером, описанным по этой ссылке:
Веб-сервер запускается в обычном системном командном окне. Это окно можно минимизировать, максимизировать, перетащить,
Seenkao писал(а):Linux возможно не будет. На Windows это обычное окно, потому события перехватываются.
S_Gur писал(а):Меня шибко ломает, почему перехват закрытия окна разными способами, включая Ctrl+C у меня прекрасно работает
S_Gur писал(а):Shleps, в данном случае дело не в том, что конкретно происходит при нажатии Ctrl+C, а в том, что я прекрасно ловлю это событие. И никак не могу понять, как организовать ловлю других событий
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12