AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ICQ/Konsole

Ein Thema von Matrix Scripter · begonnen am 21. Jun 2007 · letzter Beitrag vom 2. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#1

ICQ/Konsole

  Alt 21. Jun 2007, 13:47
Hallo erstmal!

Also ich wollte mit einen kleinen ICQ Bot basteln, das ganze eigentlich aus keinem bestimmten Grund, nur so aus langeweile. Und ich dachte ich könnte bei der gelegenheit doch endlich mal OOP lernen

Ich benutze die TICQLib (http://sourceforge.net/projects/ticqlib), und wollte das ganze als Konsolenanwendung machen.
Ich hab die Bot Komponente(TToy) in eine extra Unit(Toy.pas) gepackt.

Das ganze sieht nun wie folgt aus:

Delphi-Quellcode:
unit Toy;

interface

uses SysUtils, ICQWorks, ICQClient;

type
 TToy = Class
    ICQ: TICQClient;
    procedure ICQInit(Server: string; Port, UIN: cardinal; Password: string);
    procedure ICQLogin(Sender: TObject);
    procedure ICQError(Sender: TObject; ErrorType: TErrorType; ErrorMsg: String);
  End;

implementation

procedure TToy.ICQInit(Server: string; Port, UIN: cardinal; Password: string);
begin
  ICQ := TICQClient.Create(nil);
  ICQ.OnLogin := ICQLogin; //brauch ich das?
  ICQ.OnError := ICQError; //brauch ich das?
  ICQ.ICQServer := Server;
  ICQ.ICQPort := Port;
  ICQ.UIN := UIN;
  ICQ.Password := Password;
end;

procedure TToy.ICQLogin(Sender: TObject);
begin
  WriteLn('eingeloggt');
end;

procedure TToy.ICQError(Sender: TObject; ErrorType: TErrorType; ErrorMsg: string);
begin
  if ErrorType = ERR_WARNING then
    WriteLn('Warning ' + ErrorMsg)
  else
    WriteLn('Error ' + ErrorMsg);
end;
end.
bzw.

Delphi-Quellcode:
program BotProg;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Toy in 'Toy.pas';

var
  test: TToy;

{ TODO -oUser -cConsole Main : Hier Code einfügen }
begin
  test := TToy.Create;
  WriteLn('Started');
  test.ICQInit('login.icq.com',5190,523523523,'PASSWORD');
  test.ICQ.SendMessage(023023023,'test');
  ReadLn;
  test.ICQ.LogOff;
end.
Nun, mein Problem ist, das eigentlich gar nichts passiert. D.h. es wird keine Nachricht versand. und ich weiss nicht warum
Wäre toll wenn ihr mir helfen könntet...und bitte seid nachsichtig

mfG matrix scripter
was ist verzweiflung?
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#2

Re: ICQ/Konsole

  Alt 21. Jun 2007, 14:00
Ich kenne den TICQCLient nicht wirklich, aber wo rufst du eine Methode auf, die ICQ verbinden lässt?
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#3

Re: ICQ/Konsole

  Alt 21. Jun 2007, 14:31
Hab ich während des ganzen rumprobierens wohl irgendwann weggelöscht -.-
Ich habs jetzt wieder drin:

Delphi-Quellcode:
begin
  test := TToy.Create;
  WriteLn('Started');
  test.ICQInit('login.icq.com',5190,523523523,'PASSWORD');
  test.ICQ.Login;
  test.ICQ.SendMessage(023023023,'test');
  ReadLn;
  test.ICQ.LogOff;
end.
Aber funktionieren tut es immernoch nicht.
Und komischerweise wird auch nie ne Fehlermeldung angezeigt.
was ist verzweiflung?
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: ICQ/Konsole

  Alt 21. Jun 2007, 14:38
*Seufz*

Die ICQLib ist veraltet. Sie funktioniert out of the box schlicht und ergreifend nicht mehr. Suche hier im Forum und die wirst ein paar Hacks finden, oder schau im Bugtracker bei Sourceforge, da dürfte sich auch einiges finden.

  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#5

Re: ICQ/Konsole

  Alt 21. Jun 2007, 15:28
Achso ist das!
Okay dann werd ich mich da mal drüm kümmern. Danke für die schnellen Antworten.
was ist verzweiflung?
  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#6

Re: ICQ/Konsole

  Alt 21. Jun 2007, 16:07
Hmm seltsamer Weise funktioniert es immernoch nicht..ich werd nochmal genau nachschauen...vllt hab ich doch noch was vergessen/falsch gemacht.
was ist verzweiflung?
  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#7

Re: ICQ/Konsole

  Alt 21. Jun 2007, 19:18
Ich hab echt keine Ahnung was falsch ist

Die ICQLib müsste jetzt stimmen, zumindest funktioniert jetzt das Beispiel "VerySimpleExample".
Aber bei mir tut sich immer noch nichts
Wäre echt nett wenn mir jemand helfen könnte.
was ist verzweiflung?
  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#8

Re: ICQ/Konsole

  Alt 23. Jun 2007, 00:39
Ich habs nochmal mit ner Form versucht

Delphi-Quellcode:
unit t;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ICQClient, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  icq: TICQClient;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  icq.Login();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  icq := TICQClient.Create(nil);
  icq.ICQServer := 'login.icq.com';
  icq.ICQPort := 5190;
  icq.UIN := 523523523;
  icq.Password := 'PASSWORD';
end;
end.
Hier kann ich problemlos verbinden, nur eben bei dem Konsolenprogramm nicht...weiss keiner rat?
was ist verzweiflung?
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#9

Re: ICQ/Konsole

  Alt 24. Jun 2007, 19:59
Zitat von Matrix Scripter:
Delphi-Quellcode:
begin
  test := TToy.Create;
  WriteLn('Started');
  test.ICQInit('login.icq.com',5190,523523523,'PASSWORD');
  test.ICQ.Login;
  test.ICQ.SendMessage(023023023,'test');
  ReadLn;
  test.ICQ.LogOff;
end.
Ich nehme an, dass das ganze asynchron abläuft. Also musst du schon warten, bis ICQ auch verbunden hat. Sprich such dir das Ereignis raus, das anzeigt, dass man eingeloggt ist und mach dann deine Aktion da drinnen
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
Matrix Scripter

Registriert seit: 20. Apr 2005
Ort: Freiburg
37 Beiträge
 
#10

Re: ICQ/Konsole

  Alt 19. Jul 2007, 15:10
Ok. Werde ich mal machen, danke dir.
Soweit ich weiss habe ich aber auch mal das hier probiert:

Delphi-Quellcode:
begin
  test := TToy.Create;
  WriteLn('Started');
  test.ICQInit('login.icq.com',5190,523523523,'PASSWORD');
  test.ICQ.Login;
  ReadLn;//<------
  test.ICQ.SendMessage(023023023,'test');
  ReadLn;
  test.ICQ.LogOff;
end.
Und dort eine Weile gewartet bis ich Enter drückte, so dass eigentlich genug Zeit war um sich einzuloggen. Aber da ging auch nix.
Ich werde aber trotzdem mal nach dem Ereignis suchen das du meinst, und es damit probieren.

mfG matrix scripter
was ist verzweiflung?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz