ICQ - форум. Всё про ICQ.  

Вернуться   ICQ - форум. Всё про ICQ. > Мастерская > Программирование

Программирование C / C++ / Visual C++ / Delphi / Visual Basic / ASM / Windows / Pascal

 
 
Опции темы Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.48.
Старый 28.05.2007, 06:59   #1
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

Репутация: 406
По умолчанию TICQClient - исправления, дополнения и прочее

В этой теме будут выкладываться исправления и дополнения к компоненту TICQClient от Кобана для Delphi.


Компонент, актуально работающий на 13.08.2010
скачать: TICQClient
Пример работы с компонентом:
скачать: СheatICQ
Официальный хелп от coban2k
скачать: TICQClientHelp.rar



==============================

Оригинальный компонент (с демо): скачать


Компонент с работающими прокси и кодировками скачать тут


Компонент от Romen'a (с демо):
- движок на ICQ
- к архиве есть все необходимые модули (для WSocket'a от ICS 1.4, плюс из RxLib несколько модулей)
- из компонента убрано все "лишнее"
скачать

Демки делались в Turbo Delphi 2006, поэтому если вы будете собирать их под Delphi 7 и ниже не забудте в насткойках проекта указать пути, иначе среда не найдет эти модули и будет ругаться на их отсутствие.



1) Project -> Options
2) Закладка Directories/Conditionals
3) -> Units output directory: Units
-> Search path: ICQClient

Последний раз редактировалось DjFly; 04.02.2012 в 20:23.
Sax-mmS вне форума  
Плюсанули Sax-mmS — 3 :
Старый 26.03.2008, 23:04   #176
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

Репутация: 302
По умолчанию

Посматри хелп, там есть пример получения СКЛ, собирай id в массив и т.д., а потом при добавлении сверяйся с ним, если боишься что совпадет.
yxu вне форума  
Плюсанул yxu :
Старый 27.03.2008, 16:13   #177
Участник
 
Регистрация: 05.11.2006
Сообщений: 6

ICQ: 218894

Репутация: 1
Отправить сообщение для crysiss с помощью Skype™
По умолчанию

Что-то я недогоняю, ктонебуть подскажите как установить этот компонент на Delphi 2007 for Win32 ???
Если можно поподробней. Плиз

Я скачал компонент из первого поста.
__________________
Настройка/установка движка vBulletin
ICQ:218894
crysiss вне форума  
Старый 27.03.2008, 16:19   #178
Участник
 
Регистрация: 27.09.2006
Сообщений: 1,045

ICQ: 272768

Репутация: 2856
Отправить сообщение для .fry с помощью Skype™ Bimoid
По умолчанию

.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR.

Последний раз редактировалось .fry; 09.11.2008 в 23:57.
.fry вне форума  
Плюсанул .fry :
Старый 29.03.2008, 14:34   #179
Участник
 
Регистрация: 29.03.2008
Сообщений: 3

Репутация: 1
По умолчанию Передача файлов

Я использую TICQClient v1.24 от Kozachok
Помогите, пожалуйста, сделать передачу файлов!!! Примеры из хелпа не работают Очень надо

Заранее благодарен, спасибо!
Leon1232 вне форума  
Старый 31.03.2008, 16:53   #180
Участник
 
Регистрация: 29.03.2008
Сообщений: 3

Репутация: 1
По умолчанию

Цитата:
Сообщение от yxu Посмотреть сообщение
Одни и теже вопросы =/
Я прочитал всю тему от начала и до конца! НЕТ тут вопросов про передачу файлов! Помогите, пожалуйста!
Leon1232 вне форума  
Старый 31.03.2008, 18:47   #181
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

Репутация: 406
По умолчанию

Leon1232, потому что я их все вычистил.
Реализация передачи файлов настолько сильно изменилась, что "просто поправить" не получится. Вопрос сложный, так что не во всех современных клиентах она есть.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Плюсанул Sax-mmS :
Старый 31.03.2008, 19:28   #182
Участник
 
Регистрация: 29.03.2008
Сообщений: 3

Репутация: 1
По умолчанию

2 Sax-mmS:
И всё же неужели никто ещё не исправил? Есть ли хоть какие нибудь наработки?

И ещё вопросик.. Как можно сделать задержку между отправкой сообщения? Например как в "Выборочная отправка" в квипе
Leon1232 вне форума  
Старый 31.03.2008, 20:02   #183
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

Репутация: 406
По умолчанию

Leon1232, Sleep и SleepEx
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Плюсанул Sax-mmS :
Старый 31.03.2008, 23:17   #184
Участник
 
Регистрация: 26.03.2008
Сообщений: 6

Репутация: 1
По умолчанию

Как бороться с ошибкой "Received malformed login packet" которая иногда возникает при соединении?
Mikel вне форума  
Старый 01.04.2008, 10:57   #185
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

Репутация: 406
По умолчанию

Mikel, разгрузить сеть от трафика. Эта ошибка появляется когда пакеты приходят не полностью, из-за высокой загрузки сети.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Плюсанул Sax-mmS :
Старый 01.04.2008, 20:31   #186
Участник
 
Регистрация: 26.03.2008
Сообщений: 6

Репутация: 1
По умолчанию

А что делать если такое вдруг приключилось? Реконнект?
Mikel вне форума  
Старый 01.04.2008, 23:53   #187
Участник
 
Регистрация: 27.09.2006
Сообщений: 1,045

ICQ: 272768

Репутация: 2856
Отправить сообщение для .fry с помощью Skype™ Bimoid
По умолчанию

.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR.

Последний раз редактировалось .fry; 10.11.2008 в 00:03.
.fry вне форума  
Плюсанул .fry :
Старый 02.04.2008, 12:40   #188
Участник
 
Регистрация: 29.03.2008
Сообщений: 9

Репутация: 1
По умолчанию Передоключение

У меня вот такой вопрос, может ли этот компонент после неожиданного побрыва связи, переподключаться, а то в шараге интернет начел глючить и я уходя на обед решил проверить. Включил Qip и свою прогу на этом компоненте, пришел с обеда, Qip - работает, прога - хрен.
Если кто сталкивался, как можно реализовать передоключение.
Mutronics вне форума  
Старый 02.04.2008, 13:42   #189
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

Репутация: 302
По умолчанию

Минимум 2-3 раза этот вопрос поднимался на 8 страничках данной темы, попробуйте путем неимоверных усилий переместить курсор вниз странички и непосредственным воздействием указательного пальца правой/левой руки произвести щелчок по соответствующим страницам (1-8), попробуйте внимательно изучить их содержание.
yxu вне форума  
Плюсанул yxu :
Старый 10.04.2008, 00:39   #190
Участник
 
Регистрация: 10.04.2008
Сообщений: 2

Репутация: 1
По умолчанию

Как зарегистрировать новый Uin???
mrKaktus вне форума  
Старый 10.04.2008, 00:48   #191
Участник
 
Регистрация: 27.09.2006
Сообщений: 1,045

ICQ: 272768

Репутация: 2856
Отправить сообщение для .fry с помощью Skype™ Bimoid
По умолчанию

.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR.

Последний раз редактировалось .fry; 10.11.2008 в 00:07.
.fry вне форума  
Плюсанул .fry :
Старый 10.04.2008, 08:18   #192
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

Репутация: 302
По умолчанию

Еще если интересны глубины icq и хочешь сделать что то сам, можешь глянуть тут
yxu вне форума  
Старый 11.04.2008, 12:22   #193
Участник
 
Регистрация: 11.04.2008
Сообщений: 17

Репутация: 1
По умолчанию

БАГ нашёл :)
этот пипец какой то а не баг... - если в сообщении присутствует текст "narod.ru" то бот (написанный на этом компоненте) не может получить или отправить это сообщение

это у меня одного так или у всех ?
если у всех - то почему это происходит ?
и как исправить ?

Добавлено через 1 час 25 минут
C джиммом та же фигня - если отчёт о доставке включен, то сообщения где есть текст "narod.ru" доходят, если выключен - то нет

XaTTaB (13:41:42 11/04/2008)
фишка с народом давно была. и не совсем понятно, то ли аол сознательно гробит такие сообщение, то ли глюк какой
__________________
мой номер = 4О86226
мой icq bot = 3102967 (работа с почтой + фильмы + башорг + ... )

Последний раз редактировалось DjSens; 11.04.2008 в 13:47. Причина: Добавлено сообщение
DjSens вне форума  
Старый 11.04.2008, 13:53   #194
Участник
 
Аватар для kaleostra
 
Регистрация: 09.01.2005
Сообщений: 525

ICQ: 577388

Репутация: 1607
По умолчанию

при чом тут народ :)
про багу с сыллками известно года 2 :)
я ещё в первом боте отключил команду www - случайную ссылку, так как сообщения не доходили :)
kaleostra вне форума  
Плюсанул kaleostra :
Старый 11.04.2008, 15:37   #195
Участник
 
Регистрация: 11.04.2008
Сообщений: 17

Репутация: 1
По умолчанию

это не простой баг с ссылками...
почему сообщение с текстом "relax.ru" проходит а "narod.ru" нет ?

Добавлено через 1 минуту
всё, понятно, это у Aol такой антиспам-фильтр стоит :)
__________________
мой номер = 4О86226
мой icq bot = 3102967 (работа с почтой + фильмы + башорг + ... )

Последний раз редактировалось DjSens; 11.04.2008 в 15:39. Причина: Добавлено сообщение
DjSens вне форума  
Старый 11.04.2008, 19:47   #196
Участник
 
Регистрация: 10.04.2008
Сообщений: 2

Репутация: 1
По умолчанию

.fry и yxu спасибо огромное!!! очень выручили...

теперь проблема со статусами... читал все сообщения, которые того касается, но что-то ничего не выходит (sslactivate добавил). Может подскажите что нужно сделать сначала и до конца, что бы отображение статуса заработало??

Ну может авторизация нужна, или еще что??? (хотя авторизация есть...)

Последний раз редактировалось mrKaktus; 11.04.2008 в 21:15.
mrKaktus вне форума  
Старый 12.04.2008, 15:46   #197
Участник
 
Регистрация: 26.09.2006
Сообщений: 149

Репутация: 129
По умолчанию

Решение проблемы с принятием сообщений в кодировке UTF-16 (без претензий на красоту и быстроту):

Модуль TICQClient.pas
...
procedure TICQClient.HSnac0407(Flap: TFlapHdr; Snac: TSnacHdr; Pkt: PRawPkt);
...
Msg := GetStr(Pkt, ULen);//The actual message text. There will be no ending NULL.
// Начало вставки
if CharsetNumber = 2 then Msg := UTF16ToStr(Msg)
else
// Конец вставки
if not ((CharsetNumber=0) or (CharsetNumber=3))
...


Модуль ICQWorks.pas
...
interface
...
function UTF16ToStr(Value: String): String;
...
implementation
...
{Convert string from UTF-16 format into ASCII}
function UTF16ToStr(Value: String): String;
var
x : string[1];
s : word;
i : word;
begin
for i := 1 to Length(Value) div 2 do begin
s := ord(Value[i*2-1])*256+ord(Value[i*2]);
x := WideCharToString(@s);
result := result + x;
end;
end;
...
__________________
{$R snt.res} <<<

Последний раз редактировалось sai_NT; 12.04.2008 в 15:48. Причина: .
sai_NT вне форума  
Плюсанул sai_NT :
Старый 16.04.2008, 18:45   #198
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

Репутация: 302
По умолчанию

Итак небольшой мануальчик по поводу работы с новыми XStatus, как в асе 6. Попытаемся внедрить сие новвоведение в TICQClient:
Открываем ICQClient.pas и объявляем в public следущую процедурку - procedure SetNewXStatus(NewStat: TXStatus; NewStr: string);
Далее ниже вставляем код самой процедуры:
Код:
procedure TICQClient.SetNewXStatus(NewStat: TXStatus; NewStr: string);
var
 pkt: TRawPkt;
begin
 if not LoggedIn then exit;
 CreateCLI_SETNEWXSTATUS(@pkt, NewStat, NewStr, Fseq);
 FSock.SendData(pkt, pkt.Len);
end;
Теперь открываем ICQWorks.pas, объявляем процедуру procedure CreateCLI_SETNEWXSTATUS(Pkt: PRawPkt; XStat: TXStatus; XStatStr: string; var Seq: Word);
и ниже вставляем ее код:
Код:
procedure CreateCLI_SETNEWXSTATUS(Pkt: PRawPkt; XStat: TXStatus; XStatStr: string; var Seq: Word);
var
 lpkt: TRawPkt; s: string;
begin
  PktInit(Pkt, 2, Seq);                 //Channel 2
  PktSnac(Pkt, $01, $1E, 0, 0);        //Snac: Type x01/x1E, ID x0000, Flags 0
  PktInitRaw(@lpkt);

  PktInt(@lpkt, $0002, 2); //Type
  PktInt(@lpkt, $04, 1); //Flag
  S:= StrToUTF8(XStatStr);
  PktInt(@lpkt, Length(S)+ 2, 1);
  PktWStr(@lpkt, S); //Data

  PktInt(@lpkt, $000E, 2); //Type
  PktInt(@lpkt, $00, 1); //Flag
  PktLStr(@lpkt, GetNewXStatus(XStat)); //Data

  PktTLV(Pkt, $1D, lpkt.len, @lpkt.Data); //TLV(1D)
  PktFinal(Pkt);                          //Finalize packet
end;
Кроме того нам понадобиться список всех новых XStatus, пишем сюда же в ICQWorks.pas:
Код:
 NewXStatus: array[0..36] of record
  dopstr: TXstatus;
  dopxstr: string;
 end = (
  (dopstr: x_shop; dopxstr: 'icqmood0'),
  (dopstr: x_duck; dopxstr: 'icqmood1'),
  (dopstr: x_tired; dopxstr: 'icqmood2'),
  (dopstr: x_party; dopxstr: 'icqmood3'),
  (dopstr: x_beer; dopxstr: 'icqmood4'),
  (dopstr: x_think; dopxstr: 'icqmood5'),
  (dopstr: x_eat; dopxstr: 'icqmood6'),
  (dopstr: x_tv; dopxstr: 'icqmood7'),
  (dopstr: x_friends; dopxstr: 'icqmood8'),
  (dopstr: x_coffee; dopxstr: 'icqmood9'),
  (dopstr: x_music; dopxstr: 'icqmood10'),
  (dopstr: x_bussiness; dopxstr: 'icqmood11'),
  (dopstr: x_cinema; dopxstr: 'icqmood12'),
  (dopstr: x_funny; dopxstr: 'icqmood13'),
  (dopstr: x_phone; dopxstr: 'icqmood14'),
  (dopstr: x_games; dopxstr: 'icqmood15'),
  (dopstr: x_college; dopxstr: 'icqmood16'),
  (dopstr: x_sick; dopxstr: 'icqmood17'),
  (dopstr: x_sleeep; dopxstr: 'icqmood18'),
  (dopstr: x_surfing; dopxstr: 'icqmood19'),
  (dopstr: x_internet; dopxstr: 'icqmood20'),
  (dopstr: x_work; dopxstr: 'icqmood21'),
  (dopstr: x_typing; dopxstr: 'icqmood22'),
  (dopstr: x_angry; dopxstr: 'icqmood23'),
  (dopstr: x_unk; dopxstr: 'icqmood24'),
  (dopstr: x_ppc; dopxstr: 'icqmood25'),
  (dopstr: x_mobile; dopxstr: 'icqmood26'),
  (dopstr: x_sleeep; dopxstr: 'icqmood27'),
  (dopstr: x_wc; dopxstr: 'icqmood28'),
  (dopstr: x_search; dopxstr: 'icqmood29'),
  (dopstr: x_geometry; dopxstr: 'icqmood30'),
  (dopstr: x_love; dopxstr: 'icqmood31'),
  (dopstr: x_rusearch; dopxstr: 'icqmood32'),
  (dopstr: x_rulove; dopxstr: 'icqmood33'),
  (dopstr: x_rujournal; dopxstr: 'icqmood34'),
  (dopstr: x_smoke; dopxstr: 'icqmood35'),
  (dopstr: x_sex; dopxstr: 'icqmood36'));
Добавляем новый тип хстатус:
Код:
 TXStatus = (X_NONE, X_ANGRY, X_DUCK, X_TIRED, X_PARTY, X_BEER, X_THINK, X_EAT, X_TV, X_FRIENDS, X_COFFEE, X_MUSIC, X_BUSSINESS, X_CINEMA, X_FUNNY, X_PHONE,
  X_GAMES, X_COLLEGE, X_SHOP, X_SICK, X_SLEEEP, X_SURFING, X_INTERNET, X_WORK,
  X_TYPING, X_UNK, X_PPC, X_MOBILE, X_MAN, X_WC, X_SMOKE, X_SEX,
  X_SEARCH, X_GEOMETRY, X_LOVE, X_RUSEARCH, X_RULOVE, X_RUJOURNAL);
И функцию преобразования:
Код:
function GetNewXStatus(st: TXStatus): string;
var
 i: Word;
begin
 for i:= Low(NewXStatus) to High(NewXStatus) do
  if NewXStatus[i].dopstr = st then
  begin
   Result:= NewXStatus[i].dopxstr;
   Exit;
  end;
 Result:= '';
end;
Перекомпилируем компанент и радуемся жизни ;)
Пример использования:
Код:
ICQClient1.SetNewXStatus(X_DUCK, 'Уточко');
Ну, впринципе все, и спасибо мне ;)

Последний раз редактировалось yxu; 16.04.2008 в 18:47.
yxu вне форума  
Плюсанул yxu :
Старый 19.04.2008, 16:55   #199
Участник
 
Аватар для kaleostra
 
Регистрация: 09.01.2005
Сообщений: 525

ICQ: 577388

Репутация: 1607
По умолчанию

Вопрос, кто то смог разинвизить номера с помощью компонента?
kaleostra вне форума  
Плюсанул kaleostra :
Старый 19.04.2008, 17:29   #200
Участник
 
Регистрация: 27.09.2006
Сообщений: 1,045

ICQ: 272768

Репутация: 2856
Отправить сообщение для .fry с помощью Skype™ Bimoid
По умолчанию

.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR.

Последний раз редактировалось .fry; 10.11.2008 в 00:14.
.fry вне форума  
Плюсанул .fry :
 

Метки
delphi, ticqclient

Опции темы
Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 23:49.


Перевод: zCarot
Форум Асечников © Asechka.RU

Новости Сочи