Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ICQ Status...mal wieder^^ (https://www.delphipraxis.net/93734-icq-status-mal-wieder%5E%5E.html)

Chaismo 10. Jun 2007 17:09


ICQ Status...mal wieder^^
 
Zu erstmal guten Tag an alle!
Ich weiß das diese Frage schon oft gestellt wurde aber irgendwie nie zu einem Ergebnis geführt hat! Leider!
Wie kann man über die TICQLib den Status eines Kontaktes aus der Buddyliste abfragen?!
Manche haben ja gesagt das sie die ICQNummer über das Internet vergleichen ob die Grafik die von Online oder Offline ist aber damt komme ich nicht wirklich klar bzw hab ich keine Ahnung wie das geht!
Es muss doch eine andere Methode geben über die TICQlib dies abzufragen oder?!
Wenn ihr eine Idee habt oder euch auch Gedanken darüber macht dann schreibt sie bitte!
MFG Chaismo

Chaismo 12. Jun 2007 13:18

Re: ICQ Status...mal wieder^^
 
Hm also anscheinend weis keiner was man da machen könnte? :gruebel: :wink:
Ich würde das ja auch über Internet machen weis aber nicht wie das geht?^^
Irgendwie könnte man das doch auch ber die visibleList probieren oder ist
nur dazu da um festzustellen ob an sichtbar oder unsichtbar ist?

Eichhoernchen 12. Jun 2007 13:30

Re: ICQ Status...mal wieder^^
 
vielleicht zeigst du uns erstmal was diese TICQLib ist. Ich kenne die nicht. Was steuert man denn damit? Ein eigenes ICQ? Den offiziellen Client?

F0rc3 12. Jun 2007 14:11

Re: ICQ Status...mal wieder^^
 
TICQLib ist eine Komponente um einen ICQ-Client zu programmieren (http://sourceforge.net/projects/ticqlib)

Um den Status abzufragen müsste eigentlich folgendes gehen:

Delphi-Quellcode:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
icqclient1.AddContact(000000000); // Deine Nummer
end;


procedure TForm2.ICQClient1OnlineInfo(Sender: TObject; UIN: string; Port: Word;
  InternalIP, ExternalIP: string; OnlineTime: TDateTime; Idle: Word; ICQVersion,
  MirandaVersion: Cardinal; ProtoVer, UserCaps: Byte);
begin
if UIN='000000000' then showmessage('online');
end;

procedure TForm2.ICQClient1UserOffline(Sender: TObject; UIN: string);
begin
if UIN='000000000' then showmessage('offline');
end;

Chaismo 13. Jun 2007 13:36

Re: ICQ Status...mal wieder^^
 
hmm also wenn das klappen würde dann wäre das geil weil ich irgendwie in vielen foren hier gelesen hab das die keine Ahnung haben wies geht...gelchmal probieren!
Aber danke für den Vorschlag!

Chaismo 13. Jun 2007 19:50

Re: ICQ Status...mal wieder^^
 
hmm also jetzt kann ich das nichtmal testen da jetzt die Kontaktliste geladen wird?!
Haben die vieleicht schon wieder die Protokelle geändert?

F0rc3 13. Jun 2007 19:52

Re: ICQ Status...mal wieder^^
 
jo, ich mein irgendwann im Mai gabs eine Protokolländerung

Falls du aber Nachrichten empfangen kannst (und dich überhaupt einloggen kannst) müsste es aber eigentlich klappen...

Chaismo 14. Jun 2007 14:32

Re: ICQ Status...mal wieder^^
 
naja einloggen klappt ja super aber die Kontaktliste wird jetzt nichtmehr gealden :gruebel:
Hier der Code den hab ich aus den Examplen aus der TICQLib und hab ihn noch etwas bearebiett:
Delphi-Quellcode:
procedure TForm1.ICQClient1ServerListRecv(Sender: TObject;
  SrvContactList: TList);
var
  i: Integer;
  UserInfo: TUINEntry;
begin
  Statusbar1.panels[2].text:='Lade Kontatliste';
  if SrvContactList.Count > 0 then
    for i := 0 to SrvContactList.Count - 1 do
    begin
      UserInfo := PUINEntry(SrvContactList.Items[i])^;
      if UserInfo.CType = U_VISIBLE_LIST then
        ICQClient1.VisibleList.Add(IntToStr(UserInfo.UIN)) end
      else if UserInfo.CType = U_INVISIBLE_LIST then
        ICQClient1.InvisibleList.Add(IntToStr(UserInfo.UIN))
      else if UserInfo.CType = U_NORMAL then
      begin
        if ICQClient1.AddContactvisible(UserInfo.UIN) then
        begin
          If UserInfo.UIN>0 then begin
              ListBox1.Items.Add(UserInfo.Nick);
              icqnummer.Items.Add(IntToStr(UserInfo.UIN));
              Combobuddys.Items.Add(Userinfo.nick)
          end;
          end;
      end;
  Statusbar1.panels[2].text:='Kontaktliste fertig geladen';
  ICQClient1.DestroyUINList(SrvContactList);
end;
Also müsste doch eigentlich gehn aber irgendwie doch ni :mrgreen:
Vieleicht wisst ihr genaueres?

Die Muhkuh 14. Jun 2007 14:35

Re: ICQ Status...mal wieder^^
 
Die Sache wird einfach sein, dass ICQ mit ICQ6 das Protokoll geändert hat und die Komponente damit nicht klar kommt.

F0rc3 14. Jun 2007 15:10

Re: ICQ Status...mal wieder^^
 
bei http://sourceforge.net/projects/ticqlib gibt es eine Anleitung zum fixen ;)

Chaismo 14. Jun 2007 17:05

Re: ICQ Status...mal wieder^^
 
hmm naja das Problem is nur ich benutze schon die gefixte Version und vor 3 Tagen oder so hats auch noch geklappt und das die ganze Zeit mit ICQ6...also deswegen ja auch meine Frage ob die die schon wieder geändert haben :gruebel: :mrgreen:

F0rc3 14. Jun 2007 17:07

Re: ICQ Status...mal wieder^^
 
also bei mir klappts ohne Probleme - kann es vielleicht sein, dass du dich zu oft eingeloggt hast (Dann kommt auch die Meldung received malformed package)?

Chaismo 14. Jun 2007 19:19

Re: ICQ Status...mal wieder^^
 
Nein dann könnte ich mich ja nicht einloggen :wink:
Aber das klappt ja wunderbar und wenn ich in ene EditKoponente die ZielUIN eintrage kann ich auch Anchrichten evrsenden es liegt nur an deiser Verdammten Kontaktliste^^

F0rc3 14. Jun 2007 20:18

Re: ICQ Status...mal wieder^^
 
ach so, dann hab' ich das falsch verstanden ;)

Eventuell musst du noch irgendwo ein GetStatus oder so was einbauen - bin grad mit Ubuntu unterwegs, deswegen hab ich leider kein Delphi und kann auch nicht gucken was da hin soll ;)

Beim nächsten Wnidowsstart guck ich aber mal :)

Chaismo 16. Jun 2007 08:08

Re: ICQ Status...mal wieder^^
 
hmm naja also es klappt immernochnicht :?
Hat noch jemand andere Ideen? Bzw. weiß jemand woran das nochliegen könnte?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz