Архив: Технология создания плагинов

Здесь обсуждаются технические аспекты создания дополнений.
Аватара пользователя
~LONSDALE~
Сообщения: 145
Зарегистрирован: 14:38, 09.03.2008
Контактная информация:

Re: Технология создания плагинов

Сообщение ~LONSDALE~ »

Подскажите пожалуйста как через определённый промежуток времени отправить сообщение в чат.Помогите очень нужно.
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Технология создания плагинов

Сообщение supermet »

ZigZagkms писал(а): Формы у меня в проекте нету. Насколько мне известно таймер он посылает сообщение окну WM_TIMER и тогда уже выполняется функция, была бы форма было бы проще посылать сообщения самому со своим идентификатором и выполнять, хотя в этом я тоже могу ошибаться, не долго я с С++ работаю, как раз с тех самых пор когда разработчики отказались от UDP=) Добавлять форму ради таймера не охота, слишком большие затраты.
Можно использовать winapi функции

Код: Выделить всё

UINT_PTR WINAPI SetTimer(__in_opt  HWND hWnd, __in UINT_PTR nIDEvent, __in UINT uElapse, __in_opt TIMERPROC lpTimerFunc);
BOOL WINAPI KillTimer(__in_opt  HWND hWnd, __in  UINT_PTR uIDEvent);

//функция таймера
void OnTimer(HWND hwnd, UINT msg, UINT idtimer, DWORD dwTime)
{
// здесь код функции
}

//пример вызова
UINT timerid=SetTimer(0, 0, 6000, &OnTimer);
KillTimer(0, timerid);
В функции SetTimer первые 2 параметра нужно установить в NULL, тогда она будет работать без формы.
Последний раз редактировалось supermet 11:37, 26.11.2010, всего редактировалось 5 раз.
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Технология создания плагинов

Сообщение Cilvay »

Кто хорошо разбирается в многопоточности?
Подскажите пожалуйста как и при каких обстоятельствах использовать Synchronize? (вычитал в гугле :)) Просто раньше второй поток исполнят тупой код, а сейчас начал взаимодействовать с элементами интерфейса и пошли-поехали ошибки, причем сразу и не поймешь откуда ноги то растут..

Вот код в основном потоке:

Код: Выделить всё

form1.Memo2.Lines.Add('['+TimeToStr(Now)+']'+' Плагин успешно запущен на сервере CommFort версии - ' + uVersion);
А во втором:

Код: Выделить всё

 form1.Memo2.Lines.Add('['+TimeToStr(Now)+']'+' Обновляю xml файлы...');
И как вот сделать чтобы никаких ошибок не появлялось?
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

Re: Технология создания плагинов

Сообщение ZigZagkms »

Вопрос к разработчикам сервера. Чем грозит использование импортируемых функций в дочерних потоках, и почему?
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Технология создания плагинов

Сообщение ОреЛ »

Скажите, что будет, если виртуальный пользователя забанен, например, на отправку сообщений в канал, а он будет пытаться совершить это действие?
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

ОреЛ писал(а):Скажите, что будет, если виртуальный пользователя забанен, например, на отправку сообщений в канал, а он будет пытаться совершить это действие?
Сообщения тупо не будут публиковаться, проверено. Для контроля возможен только периодический запрос списка банов с поиском бота в списке забаненных.
$teelR@t
Сообщения: 348
Зарегистрирован: 19:14, 30.03.2008
Откуда: Украина
Контактная информация:

Re: Технология создания плагинов

Сообщение $teelR@t »

cilvay писал(а):Кто хорошо разбирается в многопоточности?
Подскажите пожалуйста как и при каких обстоятельствах использовать Synchronize? (вычитал в гугле :))
Второй день пытаюсь наладить синхронизацию. За это время узнал несколько фактов:
1. Synchronize НЕ РАБОТАЕТ В DLL.
2. Критические секции работают под виндой, а под wine'ом надо ещё что-то добавлять, чтобы они заработали (так и не нашел как и что добавить надо).
3. Семафоры и мютексы сложновато реализовать. Это уже на самый крайний случай.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

Maxim Mirgorodsky, очень хотелось-бы видеть событие (серверное), информирующее о появлении нового объявления (хотя бы только с его id). И вообще я немного не понял. на клиентской стороне список объявлений храниться где-то в файле или получается при каждом подключении к серверу? Ведь данные всёравно получаются клиентом при появлении нового объявлении, почемубы получение данных плагином (в событии) не совместить с событие получения данных клиентом, без возможности дополнительного запроса со списком/содержанием.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

Есть ещё 1 просьба к разработчикам коммфорта, пожалуйста в файле справки по плагинам введите раздел, содержащий список изменений и дополнений пунктов в справке (желательно фиксировать все версии таковых, и выделять цветом/рамкой изменённые данные).
Аватара пользователя
~LONSDALE~
Сообщения: 145
Зарегистрирован: 14:38, 09.03.2008
Контактная информация:

Re: Технология создания плагинов

Сообщение ~LONSDALE~ »

Пацаны,помогите мне с моей проблемой. Пост чуть выше.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

~LONSDALE~ писал(а):Пацаны,помогите мне с моей проблемой. Пост чуть выше.
а в чём собственно проблема?
Аватара пользователя
~LONSDALE~
Сообщения: 145
Зарегистрирован: 14:38, 09.03.2008
Контактная информация:

Re: Технология создания плагинов

Сообщение ~LONSDALE~ »

@serg@ писал(а):а в чём собственно проблема?
как через определённый промежуток времени отправить сообщение в чат.Помогите очень нужно.
(Delphi)
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

~LONSDALE~ писал(а):как через определённый промежуток времени отправить сообщение в чат.Помогите очень нужно.
(Delphi)
Не зависимо от языка разработки запустить таймер, в обработчики таймера инициализировать событие 50.
Аватара пользователя
~LONSDALE~
Сообщения: 145
Зарегистрирован: 14:38, 09.03.2008
Контактная информация:

Re: Технология создания плагинов

Сообщение ~LONSDALE~ »

Просто я рабоют с плагином для сервера.Допустим принемаю сообщения от пользователя,обновлю данные и когда программа обнавила данные нужно послать сообщение. Через таймер пытался обновить,но отправить так и не понял как.
Если не сложно опиши весь код как это работает. Очень буду блогодарен.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

~LONSDALE~ писал(а):Просто я рабоют с плагином для сервера.Допустим принемаю сообщения от пользователя,обновлю данные и когда программа обнавила данные нужно послать сообщение. Через таймер пытался обновить,но отправить так и не понял как.
Если не сложно опиши весь код как это работает. Очень буду блогодарен.
ну как на дельфи реализовать я не могу подсказать, если работаешь с формами, то там есть специальный компонент, если без форм то постов 10 назад был пример как это реализовать на с++, думаю можно легко переписать под твои нужды.
Закрыто