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. |
27.03.2008, 16:13 | #177 |
Участник
|
Что-то я недогоняю, ктонебуть подскажите как установить этот компонент на Delphi 2007 for Win32 ???
Если можно поподробней. Плиз Я скачал компонент из первого поста.
__________________
Настройка/установка движка vBulletin ICQ:218894 |
27.03.2008, 16:19 | #178 |
Участник
|
.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 09.11.2008 в 23:57. |
Плюсанул .fry : |
31.03.2008, 18:47 | #181 |
Участник
Регистрация: 06.08.2006
Сообщений: 243
ICQ: 272727765 Репутация: 406
|
Leon1232, потому что я их все вычистил.
Реализация передачи файлов настолько сильно изменилась, что "просто поправить" не получится. Вопрос сложный, так что не во всех современных клиентах она есть.
__________________
Мой блог - Mac, Qt и немного Delphi. |
Плюсанул Sax-mmS : |
31.03.2008, 20:02 | #183 |
Участник
Регистрация: 06.08.2006
Сообщений: 243
ICQ: 272727765 Репутация: 406
|
Leon1232, Sleep и SleepEx
__________________
Мой блог - Mac, Qt и немного Delphi. |
Плюсанул Sax-mmS : |
01.04.2008, 10:57 | #185 |
Участник
Регистрация: 06.08.2006
Сообщений: 243
ICQ: 272727765 Репутация: 406
|
Mikel, разгрузить сеть от трафика. Эта ошибка появляется когда пакеты приходят не полностью, из-за высокой загрузки сети.
__________________
Мой блог - Mac, Qt и немного Delphi. |
Плюсанул Sax-mmS : |
01.04.2008, 23:53 | #187 |
Участник
|
.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 10.11.2008 в 00:03. |
Плюсанул .fry : |
02.04.2008, 12:40 | #188 |
Участник
Регистрация: 29.03.2008
Сообщений: 9
Репутация: 1
|
Передоключение
У меня вот такой вопрос, может ли этот компонент после неожиданного побрыва связи, переподключаться, а то в шараге интернет начел глючить и я уходя на обед решил проверить. Включил Qip и свою прогу на этом компоненте, пришел с обеда, Qip - работает, прога - хрен.
Если кто сталкивался, как можно реализовать передоключение. |
02.04.2008, 13:42 | #189 |
Участник
Регистрация: 17.11.2006
Сообщений: 153
ICQ: 8070080 Репутация: 302
|
Минимум 2-3 раза этот вопрос поднимался на 8 страничках данной темы, попробуйте путем неимоверных усилий переместить курсор вниз странички и непосредственным воздействием указательного пальца правой/левой руки произвести щелчок по соответствующим страницам (1-8), попробуйте внимательно изучить их содержание.
|
Плюсанул yxu : |
10.04.2008, 00:48 | #191 |
Участник
|
.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 10.11.2008 в 00:07. |
Плюсанул .fry : |
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. Причина: Добавлено сообщение |
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. Причина: Добавлено сообщение |
11.04.2008, 19:47 | #196 |
Участник
Регистрация: 10.04.2008
Сообщений: 2
Репутация: 1
|
.fry и yxu спасибо огромное!!! очень выручили...
теперь проблема со статусами... читал все сообщения, которые того касается, но что-то ничего не выходит (sslactivate добавил). Может подскажите что нужно сделать сначала и до конца, что бы отображение статуса заработало?? Ну может авторизация нужна, или еще что??? (хотя авторизация есть...) Последний раз редактировалось mrKaktus; 11.04.2008 в 21:15. |
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 : |
16.04.2008, 18:45 | #198 |
Участник
Регистрация: 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; и ниже вставляем ее код: Код:
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; Код:
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 : |
19.04.2008, 17:29 | #200 |
Участник
|
.....
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 10.11.2008 в 00:14. |
Плюсанул .fry : |