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 :
Старый 06.10.2007, 16:41   #51
Участник
 
Аватар для WGR
 
Регистрация: 24.08.2007
Сообщений: 32

ICQ: 213596714

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

Привет Всем
Проблема с выгрузкой аватарки на сервер
Как я понял для выгрузки аватары нужен приход SNAC(01,21) с сервера
Вызываю UploadAvatar
приходит только SNAC(13,0E) (errcode=0)
Из за чего не приходит SNAC(01,21) ?
или почему ещё она может не загрузится на сервер?
__________________
Автор ICQ Клиента c Flash Интерфейсом
LEPRICON FLASH ICQ
WGR вне форума  
Старый 06.10.2007, 20:41   #52
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

SirJohn, не те функции используешь. Смотри хелп и функции SSLxxx
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Плюсанул Sax-mmS :
Старый 08.10.2007, 21:22   #53
Участник
 
Регистрация: 06.08.2007
Сообщений: 6

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

Цитата:
Сообщение от WGR Посмотреть сообщение
Привет Всем
Проблема с выгрузкой аватарки на сервер
Как я понял для выгрузки аватары нужен приход SNAC(01,21) с сервера
Вызываю UploadAvatar
приходит только SNAC(13,0E) (errcode=0)
Из за чего не приходит SNAC(01,21) ?
или почему ещё она может не загрузится на сервер?
Хм... Действительно перестала работать эта функция.
Если востребовано - посмотрю
OkeyUA вне форума  
Старый 16.10.2007, 13:42   #54
Участник
 
Регистрация: 16.10.2007
Сообщений: 1

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

Не обрабатывается серверный контакт-лист при запросе. В снифере смотрела - все в норме. Ну а когда доходит дело до обработки контакт-листа, в процедуре HSnac1306 читается только строка GetTLVInt(Pkt, T); if T <> 6 then Exit; Потом ничего не происходит, КЛ не загружается в программу.
Вот. К чему эта Т? Что она делает? Смотрела во всех вариациях компонента, эта процедура почти везде одинакова.
Mila Kamila вне форума  
Старый 22.10.2007, 12:34   #55
Участник
 
Регистрация: 22.10.2007
Сообщений: 20

Репутация: 2
По умолчанию Вопрос по сниферу

Кто нибудь подкажите или поделитесь хорошим снифером для Icq.
Deeptown12 вне форума  
Старый 22.10.2007, 12:41   #56
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

Если локальный, для изучения протокола - тут
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Плюсанул Sax-mmS :
Старый 23.10.2007, 18:00   #57
Участник
 
Регистрация: 18.02.2007
Сообщений: 13

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

Наконец-то нашел где могут реально помочь... вообщем трабл тут:

Код:
procedure TForm1.ICQClient1AddedYou(Sender: TObject; UIN: String);
begin
SetStatus('Контакт'+UIN+' добавил вас',1);
ICQClient1.AddContact(StrToInt(UIN));
ICQClient1.SendYouWereAdded(StrToInt(UIN));
end;
Ни первая, ни вторая функции компонента не работают.
//Перепроверил - оказалось что вообще это событие не работает.

ЗЫ
перечитал весь топик. Кто-то говорил мол по-своему клиент назвать нельзя а квип на самом деле всевидящий . Могу 100% опровергнуть: у знакомого стоит название "Это аська ЗАМИРА" (нерусский чел) в поле где пишется клиент.

Последний раз редактировалось CTAJluH; 23.10.2007 в 18:40.
CTAJluH вне форума  
Старый 23.10.2007, 19:36   #58
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

CTAJluH, по поводу добавления контакта - это пост.
По поводу SendYouWereAdded и события ничего сказать не могу. Компонент какой версии или модификации?
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 28.10.2007, 10:36   #59
Участник
 
Регистрация: 18.02.2007
Сообщений: 13

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

Не работают события OnStatusChange и OnAddedYou.
Вполне возможно что не работают ещё какие-то события, связанные с людьми из контакт-листа.

Что такое может быть? Нужные какие то шаманства чтобы они работали?
CTAJluH вне форума  
Старый 29.10.2007, 09:10   #60
Участник
 
Регистрация: 22.10.2007
Сообщений: 20

Репутация: 2
По умолчанию Не работают события OnStatusChange и OnAddedYou.

Не работают события OnStatusChange и OnAddedYou.
то же самое
сборка с {Includes patches from Saif.N for Support Web Pager }
протокол - ICQ_PROTOCOL_VER = $0007
Что делать?
Deeptown12 вне форума  
Старый 29.10.2007, 14:26   #61
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

Это все связано с последними изменениями на серверах АОЛ.
Это рабтает только с серверными авторизованными контактами.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 29.10.2007, 20:05   #62
Участник
 
Регистрация: 18.02.2007
Сообщений: 13

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

Цитата:
Сообщение от Sax-mmS Посмотреть сообщение
Это все связано с последними изменениями на серверах АОЛ.
Это рабтает только с серверными авторизованными контактами.
Проверял на авторизованных в т.ч. на себе - нифига.
Зато увидел интересную особенность:
стоит контакту написать хоть одно сообщение и события начаниют работать!
CTAJluH вне форума  
Старый 01.11.2007, 20:39   #63
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

Цитата:
Сообщение от CTAJluH Посмотреть сообщение
А мне надо если был приконнектен и обрыв...
Там при этом же вроде тоже вызывается OnConnectionFailed. Ну уж OnDisconnected точно должен вызываться.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 01.11.2007, 23:57   #64
Участник
 
Регистрация: 18.02.2007
Сообщений: 13

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

Цитата:
Сообщение от Sax-mmS Посмотреть сообщение
Ну уж OnDisconnected точно должен вызываться.
А это что за событие такое? Оо

Добавлено через 48 секунд
Точнее, что за событие-то, мне понятно, но у меня такого нет :) и в мануале нет про него.

Последний раз редактировалось CTAJluH; 01.11.2007 в 23:58. Причина: Добавлено сообщение
CTAJluH вне форума  
Старый 02.11.2007, 01:35   #65
Участник
 
Регистрация: 04.05.2005
Сообщений: 23

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

Не получается подключаться через прокси. Ни в оригинальном компоненте Кобана, ни в модификации Романа.

Код:
ICQClient.ProxyType := P_SOCKS5;
ICQClient.ProxyHost := '89.176.243.14';
ICQClient.ProxyPort := '1093';


Что делаю не так?
Cegou вне форума  
Старый 02.11.2007, 06:59   #66
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

А какой сервер/порт подключения? Желательно не login.icq.com и порт 443.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 03.11.2007, 03:36   #67
Участник
 
Регистрация: 23.07.2007
Сообщений: 13

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

Цитата:
Сообщение от Cegou Посмотреть сообщение
Не получается подключаться через прокси. Ни в оригинальном компоненте Кобана, ни в модификации Романа.

Код:
ICQClient.ProxyType := P_SOCKS5;
ICQClient.ProxyHost := '89.176.243.14';
ICQClient.ProxyPort := '1093';


Что делаю не так?
Тажа проблема, только с другими сервами ещё не пробывал.
Праверьти код, если не затруднит. Всё правильно?

Код:
procedure Conn;
begin
  ICQClient:= TICQClient.Create(nil);
  ICQClient.ICQServer:= Host;
  ICQClient.ICQPort:= Port;
  ICQClient.OnError:= ICQClientError;
  ICQClient.OnLogin:= ICQClientLoginSend;
  ICQClient.OnProxyConnected:= ICQClientProxyConnected;
  ICQClient.OnUserFound:= ICQClientUserFound;
  ICQClient.OnUserNotFound:= ICQClientNoUserFound;
  ICQClient.UIN:= StrToInt(ICQLogin);
  ICQClient.Password:= ICQPass;
  ICQClient.Login();
end;
Код:
procedure ICQClientProxyConnected(Sender: TObject;
ErrCode: Word);
var
  Checked: TProxyType;
begin
  case ProxyIF of
    0: Checked:= P_NONE;
    1: Checked:= P_SOCKS4;
    2: Checked:= P_SOCKS5;
//    3: Checked := P_HTTP
  end;
  ICQClient.ProxyType:= Checked;
  ICQClient.DisableDirectConnections := TRUE;
  ICQClient.ProxyResolve:= TRUE; //TRUE
  ICQClient.ProxyAuth:= FALSE;
  if ICQClient.ProxyType = P_HTTP then
    ICQClient.ICQPort := '443';
  ICQClient.ProxyHost:= HostProxy;
  ICQClient.ProxyPort:= PortProxy;
  ICQClient.ConnectionTimeout := 15
end;
Ииии ещё... http в юнитах рабочее?

Последний раз редактировалось eXa; 03.11.2007 в 03:41.
eXa вне форума  
Старый 03.11.2007, 11:08   #68
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

eXa, удивительно, если бы это работало. ICQClientProxyConnected это просто событие, оповещающее, что первичное подключение через прокси прошло или нет. Все что ты задаешь в ICQClientProxyConnected надо прописывать до ICQClient.Login();
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 03.11.2007, 14:00   #69
Участник
 
Регистрация: 03.11.2007
Сообщений: 1

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

А реально вообще заставить его работать в консольном приложении, т.е. без формы.
Pentium02 вне форума  
Старый 03.11.2007, 14:39   #70
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

Теоретический да. В сорцах есть возможность отключить формы делфи, вот тока придется переписывать функционал клсаа Application, т.к. клиент подвязан на его системе обработки собщений Windows.
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 06.11.2007, 09:25   #71
Участник
 
Регистрация: 21.11.2006
Сообщений: 47

ICQ: 232521

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

Цитата:
Сообщение от CTAJluH Посмотреть сообщение
Правда тут есть одна проблема, я как раз об этом спрашивал - нет события, отвечающего за дисконнект =О
Код:
OnConnectionFailed 

  // здесь только если физически произошло разъединение с сервером
  // после ошибки сюда не попадаем
  // 1, 'error icq login'
  // 2, 'error icq disconnect'
  // ErrCode, 'error connect host down'
  // ErrCode, 'error rcv data'
  // ErrCode, 'error connect proxy bad'
Romen вне форума  
Плюсанул Romen :
Старый 06.11.2007, 13:29   #72
Участник
 
Регистрация: 18.02.2007
Сообщений: 13

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

Romen, опять вы мне про этот КоннекшнФайлд.

Цитата:
Сообщение от Manual
OnConnectionFailed(Sender: TObject)
Вызывается, когда вы не можете подключиться к серверу либо сервер вас отключил по другим причинам.
Другими словами, это событие означает, что не получилось приконнектиться.
А мне надо если был приконнектен и связь пропала.
CTAJluH вне форума  
Старый 06.11.2007, 13:45   #73
Участник
 
Аватар для BEast
 
Регистрация: 25.06.2005
Сообщений: 38

ICQ: 534555

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

Цитата:
Сообщение от CTAJluH Посмотреть сообщение
А мне надо если был приконнектен и связь пропала.
Всё правильно люди тебя говорят.
Используй OnConnectionFailed(Sender: TObject).
Только что проверил: при физическом отключении от и-нета вызывается OnConnectionFailed, что и требовалось доказать.
__________________
Софт на заказ
Контакт: 534555
BEast вне форума  
Старый 07.11.2007, 16:37   #74
Участник
 
Регистрация: 22.10.2007
Сообщений: 20

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

Стал использовать сборку от Romena.
Не работает событие OnStatusChange даже с авторизованными пользователями. Что делать.
Deeptown12 вне форума  
Старый 08.11.2007, 11:44   #75
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

После шаманств на сервере на многих номерах работает тока серверный лист. Так что сначала контакты должны быть на сервевер, а при подключени добавлены ростер (AddContact, AddContactMulti)
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
 

Метки
delphi, ticqclient

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

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

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

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


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


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

Новости Сочи