![]() |
|
|||||||
| Программирование C / C++ / Visual C++ / Delphi / Visual Basic / ASM / Windows / Pascal |
|
|
Опции темы |
Рейтинг:
|
|
|
#1 |
|
Участник
Регистрация: 06.08.2006
Сообщений: 243
ICQ: 272727765 Репутация: 406
|
В этой теме будут выкладываться исправления и дополнения к компоненту 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 в 19:23. |
|
|
|
|
#126 |
|
Участник
Регистрация: 28.11.2007
Сообщений: 5
Репутация: 1
|
Ну видимо у кого как.
В демке которая идет с компонентом, не сделана отсылка KeepAlive пакетов. Хотя может стоило бы, чтобы человек знал о такой возможности подробно не разбираясь с компонентом. А так с отсылкой KeepAlive пакетов все просто чудесно. Respect создателю и конечно тем, кто поддерживает это дело! Последний раз редактировалось nDaDe; 05.01.2008 в 22:14. |
|
|
|
|
#127 |
|
Участник
|
Кому интересна Дата регистрации аккаунта:
в процедуре модуле ICQClient ищем строку функцию "TICQClient.HSnac030B" и в ней в после Код HTML:
$04: {idle time} //* eraser 14.05.04
begin
Inc(Pkt^.Len, 2); //TLV's Length
wIdleTime := GetInt(Pkt, 2); //Idle in minutes
end;
Код HTML:
$05: { registration date }
begin
Inc(Pkt^.Len, 2);
RegDate := UnixToDateTime(GetInt(Pkt, 4)); // Timestamp
{if Assigned(OnRegDate) then FOnRegDate(Self, UIN, DateTimeToStr(RegDate))}
end;
надо было как-то аапить тему :)
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 11.01.2008 в 14:52. |
|
|
| Плюсанул .fry : |
|
|
#128 |
|
Участник
Регистрация: 17.11.2006
Сообщений: 153
ICQ: 8070080 Репутация: 302
|
Да там много чо шлеться:
Код:
// TLV(1) Unknown (x50) // TLV(2) Member since (not sent) // TLV(3) Online since // TLV(4) Idle time (not sent) // TLV(5) Registered // TLV(6) New status // TLV(A) External IP // TLV(C) DC Info // TLV(D) Capabilities // TLV(F) Session timer (in seconds) // TLV(1D) Avatar Hash (20 bytes) // TLV(19) New capabilities |
|
|
| Плюсанул yxu : |
|
|
#130 |
|
Участник
Регистрация: 06.08.2006
Сообщений: 243
ICQ: 272727765 Репутация: 406
|
Не знаю, почему у вас не вызывается OnConnectionFailed. Тогда самый простой способ - повесить таймер и каждые n-секунд проверять состояние подключения.
__________________
Мой блог - Mac, Qt и немного Delphi. |
|
|
| Плюсанул Sax-mmS : |
|
|
#131 |
|
Участник
Регистрация: 12.01.2008
Сообщений: 3
Репутация: 1
|
|
|
|
|
|
#132 |
|
Участник
|
bmkus, парой постов выще разбиралось это ;)
http://forum.asechka.ru/showpost.php...&postcount=125
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. |
|
|
| Плюсанул .fry : |
|
|
#133 |
|
Участник
Регистрация: 12.01.2008
Сообщений: 3
Репутация: 1
|
|
|
|
|
|
#134 |
|
Участник
|
открой её исходник в модуле ICQClient, и увидишь исходник
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. |
|
|
| Плюсанул .fry : |
|
|
#135 |
|
Участник
Регистрация: 28.11.2007
Сообщений: 5
Репутация: 1
|
Поставь таймер с интервалом в 1 мин, в котором посылай KeepAlive пакеты.
Например: procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.enabled:=true; If ICQClient.LoggedIn then ICQClient.SendKeepAlive; end; |
|
|
|
|
#136 |
|
Участник
Регистрация: 26.09.2006
Сообщений: 149
Репутация: 129
|
Если кому нужно знать при поиске уинов еще и ИД базы (рамблер, бигмир, атлас ...) вот кусочек:
procedure TICQClient.HSnac1503(Flap: TFlapHdr; Snac: TSnacHdr; Pkt: PRawPkt); ... FAge := GetInt(Pkt, 1); //The user's age. inc(Pkt.Len, 3); FBaseID := GetLNTS(Pkt); //The base ID. if Assigned(OnUserFound) then ... Не забудьте объявить переменную FBaseID и протащить по методам. В переменную FBaseID возвращается строка типа: ID, (н.п.'1,', '3,', '10,', '16,'). Ну дальше массивек ИД и Почтовик и все готово.
__________________
{$R snt.res} <<< |
|
|
| Плюсанул sai_NT : |
|
|
#137 |
|
Участник
Регистрация: 17.11.2006
Сообщений: 153
ICQ: 8070080 Репутация: 302
|
Да боянчик так то, в квипе давно ж это показывает уже. Там после Id еще мыло для логина шлется (могу сказать стопудово только про рамблер, но по идее и на остальных должно быть).
|
|
|
| Плюсанул yxu : |
|
|
#138 |
|
Участник
Регистрация: 26.09.2006
Сообщений: 149
Репутация: 129
|
К вопросу по Basic Distribution ID:
[ 1 - Israel - icq.nana.co.il ] [ 3 - Russia - icq.rambler.ru ] [ 9 - Bulgaria - icq.abv.bg ] [10 - Ukraina - icq.bigmir.net ] [14 - Turkey - icq.mynet.com ] [16 - Чехия - icq.atlas.cz ] [18 - Словакия - icq.zoznam.sk ]
__________________
{$R snt.res} <<< |
|
|
| Плюсанул sai_NT : |
|
|
#139 | |
|
Участник
Регистрация: 23.01.2008
Сообщений: 1
Репутация: 1
|
Цитата:
Нашел только http://hghltd.yandex.net/yandbtm?url...=3&sg=40&isu=1 Но это не помогает у меня и так последний вариант Что бы придумать, у кого было такое? |
|
|
|
|
|
#140 |
|
Участник
Регистрация: 24.01.2008
Сообщений: 3
Репутация: 1
|
Написал программу. Все нормально коннектится через прокси. Отсылает, принимает сообщения все работает. Но где-то через полчаса зависает наглухо. Причем в списке приложений статус работающей программы. Подскажите пожалуйста какие основные причины зависания компонента TICQClient могут быть и как их обработать?
|
|
|
|
|
#141 | |
|
Участник
Регистрация: 22.01.2008
Сообщений: 2
Репутация: 1
|
Цитата:
Поставь таймер минутный чтоб он отсылал... может помочь |
|
|
|
|
|
#142 |
|
Участник
Регистрация: 24.01.2008
Сообщений: 3
Репутация: 1
|
|
|
|
|
|
#143 |
|
Участник
Регистрация: 24.01.2008
Сообщений: 3
Репутация: 1
|
|
|
|
|
|
#145 |
|
Участник
Регистрация: 17.11.2006
Сообщений: 153
ICQ: 8070080 Репутация: 302
|
uses ICQWorks;
Код:
procedure TForm1.ICQClient1StatusChange(Sender: TObject; UIN: String; Status: Cardinal); begin if Status = S_ONLINE then showmessage(uin + ' сменил статус на ' + StatusToStr(Status)); end; |
|
|
| Плюсанул yxu : |
|
|
#146 | |
|
Участник
Регистрация: 25.01.2008
Сообщений: 7
Репутация: 1
|
Цитата:
чой-то не работает, может чо не так делаю :( можно исходничек рабочик - а я его разберу :( (просто дельфи плоховато помню/знаю) |
|
|
|
|
|
#147 |
|
Участник
Регистрация: 17.11.2006
Сообщений: 153
ICQ: 8070080 Репутация: 302
|
Попробуй для начала разобрать данную ветку форума с 1 странички, а не читать с конца. Вопрос про смену статусов поднимался минимум 2 раза (а может и 3), и написано и разжевано, ан нет, пока носом не тыкнешь не увидят.
З.Ы. К исходному компаненту прилагается норм хелп, там можно найти ответы по всем свойствам и процедурам. |
|
|
| Плюсанул yxu : |
|
|
#148 | |
|
Участник
Регистрация: 25.01.2008
Сообщений: 7
Репутация: 1
|
Цитата:
Сорри конечно, просто мне так легче - если я вижу реализацию и разбираю ее с учебником - два зайца убиваю - и программу понимаю и язык изучаю. А хелп (по крайней мере у меня) заключается в однострочном описании функции, без примеров и прочее... А по теме - нашел инфу, спасибо, поправил ICQClient, ICQWorks... только после SSLActivate, перестал грузится контакт лист :(, коммент поставлю грузится, но нет статусов :( может подскажешь в чем дело, спасибо огромное! Последний раз редактировалось nkarataev; 29.01.2008 в 17:55. |
|
|
|
|
|
#149 |
|
Участник
Регистрация: 22.01.2008
Сообщений: 2
Репутация: 1
|
Народ... ну скажите мне пожалуйса... как разобраться с статусом Online... никак немогу добится того чтоб другие клиенты увидили моего в режиме Онлайна.. показывает что оффлайн в любых положениях... в чём косяк может быть????
|
|
|
|
|
#150 | ||
|
Участник
Регистрация: 24.05.2007
Сообщений: 4
Репутация: 1
|
Цитата:
Цитата:
|
||
|
|
| Метки |
| delphi, ticqclient |
| Опции темы | |
| Оценка этой теме | |
|
|