![]() |
Re: TICQClient - Filetransfer
Zitat:
@Topic: Kann es evtl. auch daran liegen, dass ja vor nicht allzu langer Zeit mal wieder das Protokoll/die Version geändert wurde? |
Re: TICQClient - Filetransfer
[quote="Meflin"]
Zitat:
Hm, hab auch ein paar Probleme den Filetransfer hinzukriegen ^^ Allerdings ist TICQClient die einzige Komponente die ich kenne und auch noch halbwegs funktioniert - welche würdest du denn nehmen? |
Re: TICQClient - Filetransfer
So gesehen selber implementieren ;)
Was anderes als TICQLib kenne ich auch nicht direkt. Nur die Plugins von Miranda sind IMHO auch in Delphi geschrieben. Müssten auch Open- Source sein |
Re: TICQClient - Filetransfer
Zitat:
Allerdings gibt es ja bei sourceforge im Bugtracker und zugehörigen Forum ein paar Workarounds, vielleicht ist es damit mit vertretbarem Zeitaufwand möglich das ganze zum funktionieren zu bringen, ich weiß es nicht, denn ich habe es noch nicht ausprobiert... Schade dass sich der Autor nicht länger darum kümmert, aber auch irgendwo verständlich :( |
Re: TICQClient - Filetransfer
hab jetzt endlich rausbekommen, wie man eingehende Filetransfers akzeptieren kann: :)
Delphi-Quellcode:
Alelrdings wird die Datei nicht übertragen, da dann noch kein Ergeignis deklariert wurde was passiert wenn der Filetransfer gestartet wird (Miranda zeigt an: Moving to next file, es wird also auf eine Reaktion vom Empfänger gewartet)
procedure TForm1.ICQClient1FTRequest(Sender: TObject;
RequestRec: TFTRequestRec); begin ICQClient1.FTResponse(RequestRec, True, ''); end; Wahrscheinlich kann man das über folgende Procedures das irgendwie selbst hinkriegen:
Delphi-Quellcode:
Hat jemand eine Idee??
procedure TForm1.ICQClient1FTInit(Sender: TObject; UIN, FileCount, TotalBytes,
Speed: Cardinal; NickName: string); begin end; procedure TForm1.ICQClient1FTFileData(Sender: TObject; UIN: Cardinal; Data: Pointer; DataLen: Cardinal; LastPacket: Boolean); begin end; procedure TForm1.ICQClient1FTStart(Sender: TObject; StartRec: TFTStartRec; FileName: string; FileSize, Speed: Cardinal); begin end; /edit: mit
Delphi-Quellcode:
Startet man den Filetransfer - allerdings ist sozusagen ein "Dummy-Transfer", da man ja nicht gesagt hat wohin die Datei gespeichert werden soll...
procedure TForm1.ICQClient1FTStart(Sender: TObject; StartRec: TFTStartRec;
FileName: string; FileSize, Speed: Cardinal); begin icqclient1.FTStartResponse(startrec); end; |
Re: TICQClient - Filetransfer
*freu* hab herausgefunden, wie man zumindestens eine Datei mit der TICQlib empfängt :)
Delphi-Quellcode:
var uppto: string;
_file: TFilestream; implementation procedure TForm1.ICQClient1FTStart(Sender: TObject; StartRec: TFTStartRec; FileName: string; FileSize, Speed: Cardinal); begin _file := TFilestream.Create(uppto, fmCreate); icqclient1.FTStartResponse(startrec); end; procedure TForm1.ICQClient1FTRequest(Sender: TObject; RequestRec: TFTRequestRec); begin if uppto <> '' then begin icqclient1.FTResponse(requestrec, true, 'Copying the file to' + uppto); timer2.Enabled := false; end else begin icqclient1.FTResponse(requestrec, false, 'Please use the PUT-command first!'); icqclient1.SendMessage(requestrec.UIN, 'Please use the PUT-command first!') end; end; procedure TForm1.ICQClient1FTFileData(Sender: TObject; UIN: Cardinal; Data: Pointer; DataLen: Cardinal; LastPacket: Boolean); begin _file.Write(data^, datalen); if lastpacket then timer3.Enabled := true; end; procedure TForm1.Timer3Timer(Sender: TObject); begin timer3.Enabled := false; _file.Free; end; Das mit dem Timer ist zwar DirtyProgramming, allerdings kam immmer eine Fehlermeldung wenn ich das .free zu dem if lastpacket geschrieben habe (auch mit try-finally), deshalb der Timer... ...Was ich aber immer noch nicht herausgefunden habe, ist wie man eine Datei an jemanden schickt - immer wenn ich SendFileDC benutzt habe passierte rein gar nichts - kann da vllt einer helfen? *pleeeease* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 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