# ICQ API - Benutzung



## Rodney (21. Oktober 2003)

Hallo Leute,
ich habe einige Probleme beim Benutzen der ICQ API.
Ich wollte erstmal eine einfache Konsolenanwendung schreiben um mich mit der API vertraut zu machen. Das ist dabei rausgekommen:


#include <iostream.h>
#include <windows.h>
#include "ICQAPIInterface.h"



void main(void)
{
bool Ergebnis;

cout << "ICQ Fernsteuerung V 1.01 Alpha-Status!\n \n";



Ergebnis = ICQAPICall_SetLicenseKey("Daniel Penning", "MEIN PW", "MEIN KEY");

if (Ergebnis)
{
	cout << "Login... erfolgreich\n";
}else
{
	cout << "Login... fehlgeschlagen!\n";
}


}


Aber schon diese erste Startfunktion scheitert bei mir immer. Was habe ich falsch gemacht. Welche Funktionen muss ich statt dieser 1. noch aufrufen damit ich einfache Messages verschicken kann?
Es kommt kein Compilerfehler (ich habe auch alles richtig eingebunden, die Header etc...) nur gibt die funktion eben immer false zurück...

Vielen Dank im Vorraus


----------



## Thomas Kuse (21. Oktober 2003)

Du musst doch vorher auf jeden Fall noch eine Server-Verbindung aufbauen.
(z.B. login.icq.com:5190)

Lies Dir mal die Doku dazu durch!


----------



## Rodney (22. Oktober 2003)

also, die Doku habe ich mir durchgelesen da stand nichts von einer Server-Verbindung obwohl das mir jetzt auch irgendwie logisch erscheint 

wie kann man denn in c++ eine Serververbindung aufbauen? bin halt noch ziemlicher Anfänger

Trotzdem erstmal danke


----------



## Thomas Kuse (22. Oktober 2003)

Eine einfache Socket-Verbindung wird dir bestimmt nicht grossartig weiterhelfen, irgendwie muss Du den Verbindungs-Handle ja auch an die ICQ-API weitergeben.
Da gibt es sicherlich eine bestimmte Fuktion dafür.

Gibts die Doku auch online? Ich find die irgendwie nicht, ohne mich bei ICQ registrieren zu müssen.


----------



## Rodney (22. Oktober 2003)

nein die dokumentation gibts leider nicht online, du musst dich erst registrieren dann bekommst du den Code und die Doku.


----------



## Rodney (23. Oktober 2003)

kann mir sonst keiner helfen?
wie baut man eine serververbindung auf?


----------



## TheSmile (15. Dezember 2003)

*Gezeigtes Programm läuft bei mir nicht*

Hi Rodney,
ich wollte Dein Programm einmal soweit ausprobieren, aber es funktioniert bei mir leider nicht.
Ich bekomme folgende Fehlermeldungen:

ICQtest2.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __stdcall ICQAPICall_SetLicenseKey(char *,char *,char *)" (?ICQAPICall_SetLicenseKey@@YGHPAD00@Z)
Debug/ICQtest2.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Was kann ich da machen?
Ich bin ein Einsteiger in diesem Thema, und kann mir deshalb auch überhautp nicht denken, was ich machen könnte.
Kann es daran liegen, dass ich einen Umlaut in meinem Namen habe an der Stelle NAME?
ICQAPICall_SetLicenseKey("NAME", "MEIN PW", "MEIN KEY");

Für Hilfe bin ich immer dankbar,
MfG
Norbert


----------



## Rene Albrecht (16. Dezember 2003)

> _Original geschrieben von Rodney _
> *nein die dokumentation gibts leider nicht online, du musst dich erst registrieren dann bekommst du den Code und die Doku. *


Hi Rodney,

wie sollen wir Dir helfen, wenn wir (ohne Registrierung) keinen Zugriff auf die Doku bekommen?

Gruß

Nachtrag: habe eben mal ein paar Infos durchstöbert. Du scheinst Dich zu keinem Server explizit verbinden zu müssen! Hast Du den ICQ-Client nebenbei laufen? Wenn ich einige Postings im Netz richtig gedeutet habe, könnte das ICQAPICall_SetLicenseKey darüber die Verifizierung machen.

Sonst würde ich spontan vermuten, dass Dein Username/Passwort/LicenseKey nicht stimmt- aber daran wird's wohl nicht liegen...


----------



## com (16. Dezember 2003)

*Re: Gezeigtes Programm läuft bei mir nicht*



> _Original geschrieben von TheSmile _
> *Hi Rodney,
> ich wollte Dein Programm einmal soweit ausprobieren, aber es funktioniert bei mir leider nicht.
> Ich bekomme folgende Fehlermeldungen:
> ...



Du musst die Libary natürlich mitlinken
Ausgegangen vom MSVC:

- ALT + F7 drücken 
- Karteireier : Linker
- und dort "icqmapi.lib" eintragen, thats it


----------



## com (16. Dezember 2003)

*Doku*

So, ich hab einfach mal die Doku angehängt...


----------



## TheSmile (17. Dezember 2003)

*STRG + RETURN mitschicken?*

Hi,
und danke erstmal für den Tipp, bei mir läuft das Programm jetzt.

Leider hat sich ein weiteres Problem ergeben:

Die ICQ API hat die tolle Funktion über ICQAPICall_SendMessage(ICQ-Nr, "test");
eine Nachricht vom eigenen Programm aus zu versenden.

Das Problem für einen automatischen Ablauf des Ganzen ist, dass sich beim Aufruf dieser Funktion nur das Messagefenster von ICQ mit dem geschickten Text "test" öffnet, dieser Text aber erst bei Klicken auf den SEND Button bzw. drücken von STRG + RETURN auch verschickt wird.

Kann ich diese Tastenkombination in C++ simulieren und direkt mit "test" mitschicken, so dass die Nachricht direkt versendet wird?

MfG
TheSmile


----------



## com (17. Dezember 2003)

ja schicke eine sekunde später ein:

SendMessage(WM_KEYDOWN,VK_RETURN);

das sollte helfen...


Aber kannst du mir bitte sagen wie du das mit 

```
if(ICQAPICall_SetLicenseKey(name,password,code))
{
	AfxMessageBox("TRUE");
}
else
{
	AfxMessageBox("FALSE");
}
```
hinbekommen hast?


----------



## TheSmile (17. Dezember 2003)

*Bei ICQ registriert ?!*

Hi,
 mal wieder für die schnelle Antwort.

@com: Hast Du Dich mal bei ICQ registrieren lassen?

ICQAPI 

Wenn Du das machst, bekommst Du zu Deinem Namen und Deinem gewählten Passwort einen Key per email zugeschickt.
Dies baust Du dann einfach ein.

Ich bin jetzt dort seit 3 Tagen registriert, und habe auch bisher keine nervige Werbung oder sonst irgendetwas bekommen.

Ansonsten brauchst Du natürlich auch die sende Funkion von ICQ, um eine Nachricht zu senden, dies geht mit

ICQAPICall_SendMessage(int iUIN, char *pszMessage);


Was für eine Fehlermeldung bekommst Du denn, wenn Du Dein gezeigtes Programm starten willst?

MfG
TheSmile


----------



## com (18. Dezember 2003)

jo sicher, ohne regestrierung bekommt man ja auch keine api!

Also name,password,code sind bei mir nur variable in denne meine daten stehen.
ich bekomme einfach immer FALSE zurückgeliefert und verstehe nicht wieso..


----------



## TheSmile (19. Dezember 2003)

*Komisch*

Hi,
es ist komisch, dass es nich geht, aber ich muss dazu sagen, dass ich mich z.B. einfach nur mit Vornamen habe registrieren lassen, und auch somit keine Umlaute mehr im Namen hatte, und auch keine Leerzeichen.

Hast Du darauf geachtet, dass Dein Passwort genau 8 Stellen hat? Dies wird bei der Registrierung nämlich extra als Zahl angegeben?

Mehr kann ich momentan leider auch nicht zu sagen, sorry.

Was anderes:
Dein Tipp  mit SendMessage(WM_KEYDOWN,VK_RETURN); geht leider nicht ... es werden keine 2 Parameter akzeptiert. Soweit ich weiss muss man 4 übergeben, aber das Handling hab ich einfach noch nicht raus, könntest Du mir da weitere Hilfe geben?

MfG
TheSmile


----------



## Jeehaa (3. April 2008)

Hi, ich weiss, der Thread is ziemlich alt!
Aber ich beschäftige mich gerade auch mit der ICQ-Api.
Ich habe versucht mich unter http://www.icq.com/api zu registrieren, erhalte aber keine Antwort von ICQ.
Entegen eurer Beschreibung muss ich da auch kein Passwort eingeben!
Kann mir evtl. einer von euch mir die DLL und Registrierungsdaten schicken?
Ist ja eigentlich kein Geheimnis!

Die ICQMapi.dll hab ich zwar im internet gefunden, ist aber scheinbar ziemlich nutzlos ohne KEy!

DAAAAAAANKE


----------

