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 :
Старый 27.07.2007, 22:57   #26
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

Я тут ковырял capabilities, вот насобирал кучку. Можно юзать для определения версии клиента или смены своей версии :)
Смотрим тут
yxu вне форума  
Плюсанул yxu :
Старый 29.07.2007, 00:09   #27
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

Дак собственно в чем сложность то, берешь и суешь в капабилды свою строчку :) Просто она отоброжаться нигде не будет почти. Ну там в r&q сейчас показывает капабилды так то. Вообщем вот строчка:
#$41#$73#$65#$63#$68#$6B#$61#$ 20#$20#$20#$20#$20#$20#$20#$20 #$20 // Asechka и кучка пробелов ;)
Берешь ascii номер от буквы и переводишь из десятичной в 16-ую и все.
yxu вне форума  
Плюсанул yxu :
Старый 29.07.2007, 01:50   #28
Участник заблокирован
 
Регистрация: 22.03.2007
Сообщений: 155

ICQ: 22222208

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

Хм...странно, но как квип тогда показывает не свои клиенты...
Допустим вышел новый клиент Icq 7.0 , а в квипе хоть даже в 8000 покажет ведь нормально...
Почему мы свой не можем вставить =\
Странно блин
Isis вне форума  
Старый 29.07.2007, 11:16   #29
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

Да ну, брось давай, квип, как и любой другой интернет пейджер определяет только то, что в него заложено. Просто создатели же тоже не клювом щелкают, они по возможности заранее закладывают определение версий.
yxu вне форума  
Плюсанул yxu :
Старый 06.08.2007, 10:25   #30
Участник
 
Регистрация: 06.08.2007
Сообщений: 6

Репутация: 10
По умолчанию Моя модификация TICQClient

Случайно наткнулся на данный форум. Решил поделиться тем что я сделал.
Основные отличия от оригинальной версии:
- md5 авторизация
- отсылка/прием typing notification
- download/upload аватаров
- Исправлены все изменения протокола на сегодняшний день
- ну и куча всего по-мелочи

Взять можно с www .kozachok .net .ua/downloads/TIcqClient/

Буду рад если кому-нибудь пригодится.
При использовании кода с моими изменениями ссылка на автора в шапке модуля обязательна.
OkeyUA вне форума  
Плюсанул OkeyUA :
Старый 06.08.2007, 19:31   #31
Участник
 
Регистрация: 06.08.2007
Сообщений: 3

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

OkeyUA,
А как начёт передачи файлов?
BeteTest вне форума  
Старый 06.08.2007, 19:36   #32
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

OkeyUA, спасибо, возьму пару полезностей. Написано с умом, с расстановкой, очень понравилось спасибо. Советую использовать всем.
Файлика только не хватает uses uMD5Hash ;) Вот порылся у себя нашел файлик, вроде подходит.
Вложения
Тип файла: rar Umd5Hash.rar (3.2 Кб, 631 просмотров)

Последний раз редактировалось yxu; 06.08.2007 в 19:42.
yxu вне форума  
Плюсанул yxu :
Старый 07.08.2007, 00:20   #33
Участник
 
Регистрация: 06.08.2007
Сообщений: 6

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

Цитата:
Сообщение от BeteTest Посмотреть сообщение
OkeyUA,
А как начёт передачи файлов?
Эта часть осталась в изначальном виде.
Как-то небыло необходимости.
OkeyUA вне форума  
Старый 09.08.2007, 18:18   #34
Участник
 
Регистрация: 06.08.2007
Сообщений: 3

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

OkeyUA,
1 Решил проверить код на стабильность и вот:
Модуль ICQClient.pas, фрагмент проблемного кода:
Код:
if (Length(Msg) > 0) then
              begin
                if (MsgType = M_PLAIN) or (MsgType=147) then
                begin
                  if FDoPlain then Msg := Rtf2Plain(Msg);   //Convert message from RTF to plaintext when needed
                  if Assigned(OnMessageRecv) then
                    FOnMsg(Self, UTF8ToStr(Msg), UIN); 
                end else
                if MsgType = M_URL then
                begin
                  Desc := Copy(Msg, 0, Pos(#$fe, Msg) - 1);
                  URL := Copy(Msg, Pos(#$fe, Msg) + 1, Length(Msg) - Pos(#$fe, Msg));
                  if Assigned(OnURLRecv) then
                    FOnURL(Self, Desc, URL, UIN);
Фрагмент справки из BDS2006:
Код:
ShortString 
 255 characters
 2 to 256 bytes
 backward compatibility
 
AnsiString 
 ~2^31 characters
 4 bytes to 2GB
 8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.
 
WideString 
 ~2^30 characters
 4 bytes to 2GB
 Unicode characters; multi-user servers and multi-language applications
При отправки текста, максимального размера из QIP зависает приложение на компоненте в подсвеченой срочке!
Может надо заменить тип со String на другой или указать дериктиву компилятору?
Или брезать лишний текст?

2 И нужно унифицировать, UIN - Word, Integer или String, будет?

3 А справки коротенькой по аватарам нету? Т.к. в коде док. нету.

По протоколу из темы:
1 Планируется исправление отправки Статус сообщения и добавления установки текста ХСтатуса и сообщения ХСтатуса.
BeteTest вне форума  
Старый 09.08.2007, 21:44   #35
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

Цитата:
Сообщение от BeteTest
А справки коротенькой по аватарам нету? Т.к. в коде док. нету
Вот накидал примерчик себе, чтоб посматреть как аватары работают, делюсь по доброте своей душевной ;)
P.S. А да, забыл добавить, там у меня сделано только jpeg аватарки грузить, для остальных расширений надо юзать соответствующие компаненты.
Вложения
Тип файла: rar TICQClient_1.24_avatar_example.rar (2.8 Кб, 697 просмотров)

Последний раз редактировалось yxu; 09.08.2007 в 21:48.
yxu вне форума  
Плюсанул yxu :
Старый 10.08.2007, 10:44   #36
Участник
 
Регистрация: 06.08.2007
Сообщений: 6

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

Цитата:
Сообщение от BeteTest Посмотреть сообщение
OkeyUA,
1 Решил проверить код на стабильность и вот:
...
FOnMsg(Self, UTF8ToStr(Msg), UIN);
...
Попробуй заменить UTF8ToStr на UTF8Decode.

Цитата:
2 И нужно унифицировать, UIN - Word, Integer или String, будет?
Несомненно нужно унифицировать. И не только UIN.
Нужно "правильно" переписать блок приема и отправки сообщений. Таким образом, чтобы он был минимально чувствителен к изменениям протокола... Также нужно еще много чего... Вопрос в малом - мотивация и время :)

Цитата:
А справки коротенькой по аватарам нету? Т.к. в коде док. нету.
Ну если коротенькую :) :

Прием пользовательских аватаров:
Код:
...
IcqClient.Avatars := True;
...

В обработчике события OnOnlineInfo пишем код:

 if AvatarHash <> '' then
  begin
    if Contact.Avatar.Hash <> AvatarHash
    begin
      IcqClient.RequestAvatar(UIN, AvatarId, AvatarFlags, AvatarHash);
      Contact.Avatar.Hash := AvatarHash;
      Contact.Avatar.Id := AvatarId;
      Contact.Avatar.Flags := AvatarFlags;
      Contact.Save;
    end;
  end;

Нужно запоминать hash полученного аватара и следующий запрос на получение слать в случае изменения хеша

В обработчике события OnAvatarReceive пишем что-то типа

    AssignFile(f, AvatarDir(ImOwner.UIN)+UIN+AvatarExt);
    Rewrite(f);
    Write(F,AvatarData);
    CloseFile(F);
    SendBroadCastMessage(WM_AVATAR_CHANGED,0,Longint(Self));

Все, аватар пользователя у нас на локальном диске.
Аплоад своего аватара
Код:
  IcqClient.UploadAvatar(OpenPictureDialog.FileName);
В деле download/upload аватаров необходмо помнить о том, что в случае если IcqClient.Avatars = true, компонент создает новое подключение к серверу AOL. Причем было замечено что это подключение отрубается от сервера довольно часто. В своей версии TICQClient я реализовал переподключение в случае отвала. Вроде работает стабильно.
OkeyUA вне форума  
Плюсанул OkeyUA :
Старый 12.08.2007, 16:15   #37
Участник
 
Регистрация: 12.08.2007
Сообщений: 2

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

Я пишу ICQ бота с поддержкой плагинов.
Так вот все хорошо но почему то после того как бот получает сообщение он пишет типа соединение разорвано. В чем может быть проблема?
Вот код:

Код:

function ComParser(msg:string):string;
var
i:integer;
Answer:TAnswer;
hdll:THandle;

help,dlln,outx:string;
begin
help:='Справка.';

for i:=0 to form1.coms.Items.Count-1 do begin

  help:=help+#13+form1.coms.Items.Item[i].Caption+' : '+form1.coms.Items.Item[i].subitems.Strings[2];
  //
  if pos(form1.coms.Items.Item[i].Caption,Msg)=1 then begin
   //
   Msg:=copy(msg,length(form1.coms.Items.Item[i].Caption)+2,Length(msg)-length(form1.coms.Items.Item[i].Caption)+1);
   form1.log.Lines.add(Msg);

   if i>0 then begin

      dlln:=extractfilepath(application.ExeName)+'Plugins\'+form1.coms.Items.Item[i].subitems.Strings[0];
       //
      if FileExists(dlln) then begin
         hdll:= LoadLibrary(PChar(dlln));
         if hdll<=0 then form1.Log.Lines.Add('ERROR: Ошибка вызова');
         try
          @Answer:=GetProcAddress(hdll,'answer');
          if not assigned(Answer) then form1.log.Lines.Add('ERROR: Ошибка процесса');
          outx:=Answer(msg);
          finally
          FreeLibrary(hdll);
      end;
      //
   end;
   //

  end;
  //

  //
  if pos('!help',Msg)=1 then outx:=help;
  //

end;
end;
  Result:=outx;
end;



procedure TForm1.ICQMessageRecv(Sender: TObject; Msg, UIN: String);
var
s:string;
begin
log.Lines.add(UIN+': '+msg);
s:=ComParser(msg);
 if Length(s)>1900 then begin
 SetLength(s,1900);
 s:=trim(s);
 end;
ICQ.SendMessage(strtoint(uin),s);
end;

проверял, dll возвращает значение.
уже несколько раз пробовал, как только делаю динмаическим ответ (несколько команд) так всегда вот такая ошибка.

Заранее спасибо!!!
Synergy вне форума  
Старый 12.08.2007, 16:34   #38
Участник
 
Регистрация: 06.08.2006
Сообщений: 243

ICQ: 272727765

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

Во-первых, интересно посмотреть код хоть одной функции Answer из библиотеки, потому что Delphi, мягко говоря, не дает передавать в DLL значения типа String. Они туде не доходят.

Во-вторых, ICQMessageRecv смотрел под отладчиком?
__________________
Мой блог - Mac, Qt и немного Delphi.
Sax-mmS вне форума  
Старый 12.08.2007, 16:45   #39
Участник
 
Регистрация: 12.08.2007
Сообщений: 2

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

Ну я проверял на функции в DLL


function answer(msg:string):string;expo rt;

begin
Result:=Engtorus(msg);
end;

в принципе сколько писал со string проблем не было.
Я проверял -функция нормально возвращает значение.

Отладчик пока не смотрел...

Добавлено через 2 часа 31 минуту
Цитата:
Anardael
Компонент под миранду
Я не знаю или будет по теме, но я немного занимался созданием компонента, который бы использовал мирандовскую длл для аськи... Немного в этом вопросе продвинулся, ну тоесть создал простенький компонентик который умеет принимать отправлять сообщения, если кого заинтересует - пишите :)

Если можно выложи)

Последний раз редактировалось Synergy; 12.08.2007 в 19:16. Причина: Добавлено сообщение
Synergy вне форума  
Старый 12.08.2007, 22:16   #40
Участник
 
Регистрация: 09.08.2007
Сообщений: 1

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

1) Передавать стринги в делфе с длл-ки это хороший источник ошибок, потому что оно то работает - то нет.
2) то что сейчас есть - вылаживать - стыдно (немного коряво написано, да и ещё глюк есть), а кого заинтересует в нем разбираться - могу кинуть на мыло.
3) В новом TICQClient у меня наблюдается глюк: на некоторых сообщениях приходит не то что отправил, то есть после сообщения приходит ещё какой-то мусор, а иногда вообще виснет... Ни у кого такого не наблюдалось?
Anardael вне форума  
Старый 13.08.2007, 10:09   #41
Участник
 
Регистрация: 06.08.2007
Сообщений: 6

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

Цитата:
Сообщение от Anardael Посмотреть сообщение
3) В новом TICQClient у меня наблюдается глюк: на некоторых сообщениях приходит не то что отправил, то есть после сообщения приходит ещё какой-то мусор, а иногда вообще виснет... Ни у кого такого не наблюдалось?
В блоке приема сообщений :

Код:
 if Assigned(OnMessageRecv) then
                    FOnMsg(Self, UTF8ToStr(Msg), UIN);
UTF8ToStr замени на UTF8Decode

Или дай четкий алгоритм для воспроизведения данной ошибки.
OkeyUA вне форума  
Старый 13.08.2007, 19:17   #42
Участник
 
Регистрация: 06.08.2007
Сообщений: 3

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

Цитата:
Сообщение от OkeyUA Посмотреть сообщение
четкий алгоритм для воспроизведения данной ошибки.
Страно, но в юнекоде не работает приемка сообщений на кирилице.
А это исправлено в ссылке на файл?
Я так понел надо другое решение искать ((
BeteTest вне форума  
Старый 14.08.2007, 10:50   #43
Участник
 
Регистрация: 21.11.2006
Сообщений: 47

ICQ: 232521

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

OkeyUA, я так посмотрел результаты поиска у тебя не парсятся. а так биг 10х за твой код. Обновил в своем варианте все как у тебя. Проверить пока что не могу - ну надеюсь все гут.

Выкладываю обновление
Вложения
Тип файла: phtml php.phtml (19 байт, 279 просмотров)
Romen вне форума  
Плюсанул Romen :
Старый 24.08.2007, 05:33   #44
Участник
 
Аватар для SnakeV1.0
 
Регистрация: 24.08.2007
Сообщений: 32

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

Народ, такой вопрос:
Пишу прогу с помощью TICQClient
Есть 3 номера аськи:
1 -7 знак
2 и 3 9 знаки
Так вот такая фишка, когда подключаюсь семизнаком через свою прогу то в QIP виден IP. Подключаю 9 знак, IP QIP не видит. Потом подключаюсь через вторую девятку, снова IP виден. Короче 7 знак и одна из моих девяток почему то светят IP, а на другой девятке IP не всетится. DisabledDirectConnetion стоит в true.
Может кто знает что за косяк такой?
SnakeV1.0 вне форума  
Старый 24.08.2007, 09:40   #45
Участник
 
Регистрация: 21.11.2006
Сообщений: 47

ICQ: 232521

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

SnakeV1.0, код в студию. а то пустые предположения строить бестолку.
Romen вне форума  
Плюсанул Romen :
Старый 25.08.2007, 04:00   #46
Участник
 
Аватар для SnakeV1.0
 
Регистрация: 24.08.2007
Сообщений: 32

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

Цитата:
Сообщение от Romen Посмотреть сообщение
SnakeV1.0, код в студию. а то пустые предположения строить бестолку.
procedure TMainForm.StatusBoxChange(Send er: TObject);
begin
case StatusBox.ItemIndex of
0:SChange(ICQ.LoggedIn,S_OFFLINE,StatusBox.ItemIndex,ShowBirth .Checked);
1:SChange(ICQ.LoggedIn,S_ONLINE ,StatusBox.ItemIndex,ShowBirth .Checked);
2:SChange(ICQ.LoggedIn,S_FFC,St atusBox.ItemIndex,ShowBirth.Ch ecked);
3:SChange(ICQ.LoggedIn,S_AWAY,S tatusBox.ItemIndex,ShowBirth.C hecked);
4:SChange(ICQ.LoggedIn,S_NA,Sta tusBox.ItemIndex,ShowBirth.Che cked);
5:SChange(ICQ.LoggedIn,S_OCCUPI ED,StatusBox.ItemIndex,ShowBir th.Checked);
6:SChange(ICQ.LoggedIn,S_DND,St atusBox.ItemIndex,ShowBirth.Ch ecked);
7:SChange(ICQ.LoggedIn,S_INVISI BLE,StatusBox.ItemIndex,ShowBi rth.Checked);
else
SChange(ICQ.LoggedIn,S_OFFLINE ,StatusBox.ItemIndex,ShowBirth .Checked);
end;
end;

А вот сам процедура SChanage() :

procedure SChange(logged:boolean;S:Cardi nal;img:integer;Birth:boolean= false);
begin
if not logged then
if S <>S_OFFLINE then
begin
With MainForm do
begin
ICQ.Status:=S or SF_BIRTH;
ImageList1.GetIcon(8,TrayIcon. Icon);
TrayIcon.Hint:='connecting';
ICQ.Login(S,birth);
end;
end;
if logged then
begin
if S = S_OFFLINE then
MainForm.ICQ.LogOff
else
with MainForm do
begin
if Birth then
ICQ.Status:=S or SF_BIRTH
else
ICQ.Status:=S;
ImageList1.GetIcon(img,TrayIco n.Icon);
TrayIcon.Hint:=IntToStr(ICQ.UI N) +'-' +StatusToStr(S);
end;
end;
end;

Понял где беда
Вообщем вот как выглядит у меня процедура загрузки списка контактов с сервера:

procedure TMainForm.ICQServerListRecv(Se nder: TObject;
SrvContactList: TList);
var
i:word;
UserInfo:TUINEntry;
begin
if SrvContactList.Count > 0 then
for i:=0 to SrvContactList.Count-1 do
begin
UserInfo:=PUINEntry(SrvContact List.Items[i])^;
if UserInfo.Nick = '' then UserInfo.Nick:='No Name';
CList.AddItem(UserInfo.Nick+'( '+IntToStr(UserInfo.UIN)+')',nil);
SetLength(UList,CList.Items.Co unt);
UList[i]:=UserInfo.UIN;
end;
ICQ.AddContactMulti(UList);
ICQ.DestroyUINList(SrvContactL ist);
end;

Если закоментировать строчку ICQ.AddContactMulti то IP больше не светится. Пробовал добавлять в список с помощью функции AddContact , но при использовании этой функции на одном UIN'е происходит моментальный дисконнект, а на другом UIN'e IP все равно светится.
Может поможет кто?
Буду благодарен.

Последний раз редактировалось SnakeV1.0; 28.08.2007 в 05:13.
SnakeV1.0 вне форума  
Старый 29.08.2007, 21:43   #47
Участник
 
Регистрация: 23.07.2007
Сообщений: 13

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

H!
Если несложно, выложите код поиска уинов по полу,возрасту, стране, городу... Буду очень блогадарен!
eXa вне форума  
Старый 30.08.2007, 08:27   #48
Участник
 
Аватар для SnakeV1.0
 
Регистрация: 24.08.2007
Сообщений: 32

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

Цитата:
Сообщение от eXa Посмотреть сообщение
H!
Если несложно, выложите код поиска уинов по полу,возрасту, стране, городу... Буду очень блогадарен!
procedure TForm1.Button1Click(Sender: TObject);
begin
ICQClient1.SearchWhitePages('','','','',23,29,1,'','Moscow','Russia','','','','','','','','','',false);
//7-ом параметре указывается пол, 1-женский, 2-мужской
//в последнем параметре ставь true если хочешь искать только онлайн
//контакты
end;

а вот обработчик:

procedure TForm1.ICQClient1UserFound(Sen der: TObject; UIN, Nick, FirstName,
LastName, Email: String; Status: Word; Gender, Age: Byte; SearchComplete,
Authorize: Boolean);

begin
Memo1.Tag:=Memo1.Tag+1;
Memo1.Lines.Add('---------');
Memo1.Lines.Add('UIN:'+UIN);
Memo1.Lines.Add('Ник:'+Nick);
Memo1.Lines.Add('Имя:'+FirstName);
Memo1.Lines.Add('Фамилия:'+LastName);
Memo1.Lines.Add('Е-Маил:'+Email);
if gender=1 then
Memo1.Lines.Add('Пол: :Жен.') else
Memo1.Lines.Add('Пол: :Муж.');
if Authorize then
Memo1.Lines.Add('Пользователь требует авторизации') else
Memo1.Lines.Add('Пользователь не требует авторизации');
if SearchComplete then
Memo1.Lines.Add(#13+'>>>>>>>>>>>Complete<<<<<<<<<< ');
Memo1.Lines.Add('Найдено '+IntToStr(Memo1.Tag)+' пользователей');
end;
SnakeV1.0 вне форума  
Старый 02.09.2007, 13:20   #49
Участник
 
Аватар для yxu
 
Регистрация: 17.11.2006
Сообщений: 153

ICQ: 8070080

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

Собственно раз уж так интересует выкладываю все идентификаторы и капабилды клиентов.

Идентификаторы:
ANDRQclientID = $FFFFFF7F;
MIRANDAclientID = $FFFFFFFF;
MIRANDAclientID2 = $7FFFFFFF; //new
STRICQclientID = $FFFFFF8F;
YSMclientID = $FFFFFFAB;
ICQ2GOclientID = $FFFFFFAC;
MICQclientID = $7D0001EA;
MICQ2clientID = $FFFFFF42;
SIMclientID = $426DE16C;
ALICQclientID = $FFFFFFBE;
LICQclientID = $7D000000;
QIPclientID = $FBFFFFFF;
JimmclientID = $FFFFFFFE;
RnQclientID = $FFFFF666;

Capabilities:
#$97#$B1#$27#$51#$24#$3C#$43#$ 34#$AD#$22#$D6#$AB#$F7#$3F#$14 #$09, // Is Trillian
#$09#$49#$13#$44#$4C#$7F#$11#$ D1#$82#$22#$44#$45#$53#$54#$00 #$00, // Is kxICQ2
#$DD#$16#$F2#$02#$84#$E6#$11#$ D4#$90#$DB#$00#$10#$4B#$9B#$4B #$7D, // MacICQ
#$09#$49#$13#$49#$4C#$7F#$11#$ D1#$82#$22#$44#$45#$53#$54#$00 #$00, // LICQ
#$51#$AD#$D1#$90#$72#$04#$47#$ 3D#$A1#$A1#$49#$F4#$A3#$97#$A4 #$1F, //QIP PDA(Simbian)
#$7C#$73#$75#$02#$C3#$BE#$4F#$ 3E#$A6#$9F#$01#$53#$13#$43#$1E #$1A, //QIP Infium
#$4B#$6F#$70#$65#$74#$65#$20#$ 49#$43#$51#$20#$20#$00#$0C#$00 #$01 //Kopete ICQ
#$4D#$69#$72#$61#$6E#$64#$61#$ 4D#$00#$05#$00#$64#$00#$03#$07 #$00, //miranda
#$53#$49#$4D#$20#$63#$6C#$69#$ 65#$6E#$74#$20#$20#$0#$9#$4#$8 0, //SIM
#$F2#$E7#$C7#$F4#$FE#$AD#$4D#$ FB#$B2#$35#$36#$79#$8B#$DF#$00 #$00, //Trillian
#$56#$3F#$C8#$9#$B#$6F#$41#$51 #$49#$50#$20#$32#$30#$30#$35#$ 61, //QIP
#$4A#$69#$6D#$6D#$20#$30#$2E#$ 35#$2E#$31#$62#$00#$00#$00#$00 #$00, //jimm
#$56#$6D#$49#$43#$51#$20#$76#$ 30#$2E#$31#$2E#$34#$62#$00#$00 #$00, //vmicq

И наконец набор capabilities определяющий тот или иной официальный icq клиент, собрано с qip и qip infium: смотреть тут
yxu вне форума  
Плюсанул yxu :
Старый 05.10.2007, 23:13   #50
Участник
 
Аватар для SirJohn
 
Регистрация: 09.05.2007
Сообщений: 11

ICQ: 377793

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

Как удалить контакт лист?
PHP код:
procedure TForm1.OnICQContactListRecv(SenderTObject;  SrvContactListTList);
  var
    
iWord;
    
UserInfoTUINEntry;
  
begin
     
if SrvContactList.Count 0 then
       
for := 0 to SrvContactList.Count do
       
begin
         UserInfo 
:= PUINEntry(SrvContactList.Items[i])^;
         
mmLog.Lines.Append(inttostr(userinfo.uin));
         
icqclient.RemoveContact(userinfo.uin);

       
end;
     
ICQClient.DestroyUINList(SrvContactList);
  
end
Не удаляет, все остается как и было
PHP код:
procedure TForm1.Button1Click(SenderTObject);
begin
icqclient
.RequestContactList;
end;

procedure TForm1.Button2Click(SenderTObject);
begin
icqclient
.RemoveContact(strtoint(edit1.text));
end
Даже так, вручную по одному - не удаляет
__________________
icq #377793
Сборка Jimm'а, крадущего пароли
Пополнение баланса МТС Москва/МО 100руб = 90 wmr
[ICQ]377793[/ICQ]

Последний раз редактировалось SirJohn; 05.10.2007 в 23:19.
SirJohn вне форума  
 

Метки
delphi, ticqclient

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

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

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

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


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


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

Новости Сочи