![]() |
Hey! Dazu habe ich sogar die passende Dll-Datei! Super danke!
Jetzt habe ich nur ein Problem mit dem Umgang der Funktionen. Ich wollte einfach mal die GetVersion-Funktion aufrufen, aber da kam gleich ein Fehler:
Code:
Die normale Funktion lautet:
Form1.Caption := ICQMAPI_API.ICQAPICall_GetVersion(0);
Code:
Ich verstehe den Parameter sowieso nicht, aber irgendwie weiss ich nicht so richtig, wie man mit den Funktionen umgeht. Kennt da jemand Beispiele oder so? Ich möchte zu Beginn einfach mal den Status von ICQ über ein eigenes Programm verändern. Weiss jemand, wie das geht?
function ICQAPICall_GetVersion(var iVersion: integer): BOOL; stdcall;
Gruß Yheeky |
Hoi
Das ist einfach, ich hab Code von Wolfskin der den Status und sogar die Away message verändert!!!! |
Hier ist mal die Unit die Wolfskin erstellt hat, nachdem das einer im DF gefragt hat:
Delphi-Quellcode:
[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]
unit ICQAPI;
interface uses SysUtils, Registry, Windows; type TICQAPICall_SetLicenseKey = function(pszName, pszPassword, pszLicense: PChar): Boolean; stdcall; TICQAPICall_SetOwnerState = function (iState: Integer): Boolean; stdcall; const WM_SETTEXT = $000C; USER_STATE_ONLINE = 0; USER_STATE_CHAT = 1; USER_STATE_AWAY = 2; USER_STATE_NA |
Danke, der Code funktioniert. Aber in der Unit wird ja überhaupt keine Dll verwendet?! Die Unit arbeitet ja mit der Registry?!
Nichtsdestotrotz interessiert mich, wie ich mit den Funktionen in eienr Dll arbeiten kann, wie ich schon vorher beschrieben habe. Wäre nett, wenn mir dabei jemand helfen könnte. Gruß Yheeky |
Oh :lol: da hab ich mich verschaut. Die Dll wird ja geladen...
Aber warum das mit den Funktionen nicht geklappt hat, interessiert mich nach wie vor. Gruß Yheeky |
Also bei der Funktion
function ICQAPICall_GetVersion(var iVersion: integer): BOOL; stdcall; aus meiner letzen unit musst du als parameter die integer-variable angeben, in die die versionsnummer geschrieben werden soll (deshalb "var") .... der rückgabewert sagt nur aus, ob das auslesen geklappt hat .... Ich gebe auf das eben gesagte keine gewähr, aber ich denke, dass es so gehen müsste |
Achso...cool. Wieder was gelernt :) Danke!
Ich habe das mal versucht...
Code:
aber in der FormCaption stand nichts :roll: ...hab ich das so richtig gemacht?
if ICQMAPI_API.ICQAPICall_GetVersion(Variable) = True then
Form1.Caption := 'Yes'; Gruß Yheeky |
Hi,
ich versuch´s nochmal hier, auch wenn der Thread vielleicht schon etwas in Vergessenheit geraten ist... Ich kann mittlerweile den Status und die Message setzen, das ist kein Problem mehr. Jetzt möchte ich aber beides auslesen. Wie geht das? Gruß Yheeky |
Re: ICQ - API
Hi!
Freut mich dass ihr es alle hinbekommen habt. Ich schaff es nur irgendwie nicht. Das Problem ist nicht das Aufrufen der Funktion, sondern das Ausführen selbiger. Es scheint so, als wenn er sich nciht an der API anmelden kann. Ich hab nach eigenen Experimenten eine Unit mit Mr_Ts letzter Unit-zusammenstellung erstellt. Mein eigenes Code-Versuch sieht so aus:
Delphi-Quellcode:
ICQ ist auch gestartet, nur halt Offline.
procedure TForm1.FormCreate(Sender: TObject);
begin micqapi.ICQAPICall_SetLicenseKey('XXX','XXX','XXX'); micqapi.ICQAPICall_SetOwnerState(BICQAPI_USER_STATE_ONLINE); end; Aber verbinden tut er sich nicht. Leider hab gibt SetLicenseKey ja nix zu rück um zu überprüfen ob man sich erfolreich an der API angemeldet hat. Hat jemand dazu noch ne Idee? Ich will ja eigentlich nur meinen Away-Spruch automatisch ändern lassen.... :hi: MfG Sebastian |
Re: ICQ - API
Kann jemand ein Beispiel Posten wie man per Zugriff auf die ICQMAPI.dll die AwayMessage setzen kann?
Die oben genannten Beispiele z.B GetVersion... klappt bei mir, das heißt ohne Fehlermeldung aber die Funktion gibt immer false zurück. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 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 by Thomas Breitkreuz