Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > IRC бот |
Автор: Debosh 2.2.2007, 00:19 | ||
Здравствуйте, уважаемые программисты. При написании IRC-бота возникли некоторые проблемы, надеюсь с вашей помощью их удастся решить. Я написал IRC бота, который выполняет различные сервисные функции. Но теперь, мне захотелось сделать так, чтобы программа выполнялась строго в фоновом режиме, а все управление ей происходило непосредственно из IRC-клиента. Я использую компонент IdIRC, потому что на мой взгляд это очень удобно и не нужно тратить много времени описывая интерфейс WinSock и изучая особенности протокола IRC. Естественно, формы у меня в программе нет, и процедуру инициализации компонента теперь приходится выполнять вручную. Но вся проблема в том, что при обработке сообщений Windows программа зависает. Она корректно подключается к серверу, заходит на канал, но видимо в связи с зацикливанием перестает реагировать на сообщения пользователей, а через некоторое время, видимо не ответив на пинг сервера и вовсе отключает сокет и тупо висит в памяти. Пожалуйста объясните мне в чем проблема? При написании подобной программы на чистом WinSock таких неприятностей не возникало, а здесь столкнулся с настоящей бедой.
в панике. Очень жду решения поставленной задачи... |
Автор: mntek 3.2.2007, 03:15 |
а ты не пробовал сначала создать окно, которое и будет получать сообщения? |
Автор: Elfix 16.2.2007, 10:31 |
А зачем мне окно? Приложение будет работать в фоновом режиме. Окна мне не надо. И потом, даже если я создам окно, и сделаю его невидимым (не прорисую) сообщения от IRC я получать не буду, так как идет зацикливание в GetMessage. Создав окно я буду получать сообщения Windows, а они мне нафиг не нужны... |
Автор: dumb 14.3.2007, 04:09 |
Elfix, создай обычное приложение с формой(невидимой) и кинь туда IdIRC. либо разбирайся в сырцах индейских и осмысленно пытайся обеспечить компонент необходимым для него "окружением"... |
Автор: bartram 14.3.2007, 12:46 |
Elfix, создай окно с флагом SW_HIDE... |