Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 10.09.06 12:02 
Hallo,

ich bin dabei, einen ICQ-Client mit TICQClient/ICQLib zu schreiben. Dabei benutze ich die Funktion RequestInfo. Diese erhält aber keine Antwort vom Server! (mit Packetyzer überprüft) Somit kann ich von einem User keine Infos anzeigen.

Allerdings funktioniert die Demo vom ICQClient, als muss es irgendwie gehen. Soweit ich sehe, machen die auch nichts anderes als ich :( Das abgeschickte Paket sieht bei beiden gleich aus, also muss es vorher etwas sein. Aber was?

Mein bisheriger Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
procedure TdmGlobals.GetContactInfo(P: Pointer);
var n:PContactRec;
begin
  ICQ.RequestInfo(Int64(p));

  //Daten merken, brauch ich für später
  SearchState:= ssUserInfo;
  SearchData:= IntToStr(Int64(p));
  //Alte datn löschen
  n:= fmContacts.GetUINData(Int64(p));
  if assigned(n) then begin
    n.Node.ClearItems;
  end;
end;

//Wird nie aufgerufen, da keine Antwort kommt:
procedure TdmGlobals.ICQUserFound(Sender: TObject; UIN, Nick, FirstName,
  LastName, Email: String; Status: Word; Gender, Age: Byte; SearchComplete,
  Authorize: Boolean);
var n:PContactRec;
begin
  n:= fmContacts.GetUINData(StrToInt64(UIN));
  if (SearchState=ssUserInfo) and (SearchData=UIN)and assigned(n) then begin
    n.Node.Attributes['nick']:= Nick;
    n.Node.AddItem('FirstName').TextData:= FirstName;
    n.Node.AddItem('LastName').TextData:= LastName;
    n.Node.AddItem('Email').TextData:= Email;
    ActionQueue.AddAction(ACT_DISPLAYCONTACTS);
  end;
end;


Da ich hier einige Fragen zu dieser Kompo gefunden hab, scheint sich hier jemand damit auszukennen. Leider war nie was passendes dabei, daher meine Frage. BTW: auch Google hat nur ein Ergebnis, das mir auch nicht hilft.

Da ich schon einige Zeit an diesem Prob sitze, dreh ich langsam durch :twisted:

Also: Hilfäää!

Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 11.09.06 10:50 
*push*

Die Pakete sind wirklich identisch, ich hab eben alles durchgeguckt. Jedenfalls das was nich kryptisches Kram ist, da sind die Unterschiede auch nur 2-3 Byte.

Leute, ich brauch euch! :flehan: :flehan:

Sebastian

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mo 11.09.06 12:32 
Hallo,

ich kann dir zwar bei deinem Problem nicht helfen, möchte dich aber auf die ICQ-API verweisen. Da wird das ganze dann wohl etwas länger, aber vielleicht klappt es ja damit.
Ich hatte bis jetzt keine Probleme damit, hab allerdings auch nicht viel damit gemacht!

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 11.09.06 13:23 
hmmm, ich würds so machen:

mit ICQClient.RequestInfo(UIN); nach infos suchen, dann in OnUserGeneralInfo auswerten.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 11.09.06 16:22 
user profile iconXion hat folgendes geschrieben:
hmmm, ich würds so machen:

mit ICQClient.RequestInfo(UIN); nach infos suchen, dann in OnUserGeneralInfo auswerten.


Der war gut :evil:
Genau das ist ja mein Problem. Ich kriege auf das RequestInfo keine Antwort. Hm, werde nochmal ne neue App zum Testen erstellen.

Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 11.09.06 16:42 
Der Unterschied liegt darin, in welchem Ereignis du das auswertest, wenn ich Xion richtig verstanden hab

_________________
Programmers never die, they just GOSUB without RETURN
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 11.09.06 16:49 
Aso, nee, damit hats nix zu tun. Da hatte ich es vorher drin.
Und wie gesagt, der Server antwortet nicht. Von daher ist das Ereignis nebensächlich.

(Scheint nicht jeder zu wissen, Packetyzer ist ein Netzwerk-Monitoring-Tool wie Ethereal/jetzt Wireshark)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 11.09.06 18:49 
Erstmal vorne weg: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: :autsch: *das tut weh*

Was fätt euch an dem folgenden Code auf?
ausblenden Delphi-Quelltext
1:
Int64(p) mit p:Pointer					


Pointer kann man nicht in Int64 Typecasten! mit DWORD gehts einwandfrei. Und das Ereignis ist OnGeneralInfo.

Jetzt weiß ich auch, dass mein XML-Parser nen Fehler hat. Ich könnte die bekommenen Daten gar nicht speichern. Naja, anderes Thema. Und wesentlich leichter zu beheben.

So, nachdem ich mir den Kopf kaputt gemacht habe, ist Partytime!
:beer: :dance2: :party: :dance: :party: :dance2: :beer:
ich liebe symmetrische Smiley-Sammlungen...Ich weiß, ich bin verrückt :D

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."