![]() |
Über Skype Nachrichten verschicken
Hallo,
ich habe mir um über Skype Nachrichten zu verschicken diese Komponente heruntergeladen ![]() Jedoch wenn ich Daten über 1024 Zeichen verschicke bekomm ich einen Read Error... Jetzt wollte ich euch Fragen wie ich dieses Source Code verändern muss, dass ich auch längere Texte versenden kann (Mit Skype währe das ja prinzipiel möglich)
Delphi-Quellcode:
Ich hätte schon versuchte das Array einfach zu vergrößern jedoch ohne erfolg :(
function TSkypeControl.SendData(aString : string) : boolean;
var tmpdata : CopyDataStruct; buffer : array[0..1023] of char; i : integer; begin result := true; if (Length(aString) > 0) and (Fattached = true) then Begin for i := 1 to Length(aString) do buffer[i-1] := aString[i]; buffer[Length(aString)] := Chr(0); tmpdata.dwData := 0; tmpdata.lpData := @buffer; tmpdata.cbData := Length(aString)+1; if SendMessage( SkypeAPIWindowHandle, WM_COPYDATA, Application.Handle, LPARAM(@tmpdata)) = 0 then result := false; end; end; Ich bedanke mich schonmal im vorraus |
Re: Über Skype Nachrichten verschicken
Delphi-Quellcode:
schau dir mal diese Stelle ganz genau an ;)
buffer : array[0..1023] of char;
geht nicht ? hmmm :gruebel: Also eigentlich liegt es in diesem Code ja nur am Buffer-Array, aber wen es nicht reicht dieses zu vergrößern,
Delphi-Quellcode:
oder so, dann wird wohl die SkypeAPI eine interne Größenbeschränkung haben, was wohl nicht so leicht umgangen werden kann ... es sei denn man kann irgendwie der SkypeAPI mitteilen, daß sie mit einem größerem Puffer arbeiten soll?
buffer : array[0..2047] of char;
|
Re: Über Skype Nachrichten verschicken
Hät ich wie gesagt schonmal probiert (mit 65535), jedoch schickt er beim vergrößern dieses Arrays einfach einen leeren Text an Skype..
|
Re: Über Skype Nachrichten verschicken
Versuchs mal mit
var ... buffer: Pointer; ... begin GetMem( buffer, 65536); ... |
Re: Über Skype Nachrichten verschicken
@mkinzler: es bringt nicht immer was, wenn man nur den Typ / die Lage des Speichers ändert ... hier liegt das Problem mal wirklich bei bei API ;)
Außerdem würde er andere Fehler erhalten, wenn r nur den PufferTyp ändert :warn: Selbst wenn es nicht zur Lösung beiträgt ... aber Folgendes kann man dennoch verbessern :)
Delphi-Quellcode:
in ändern
for i := 1 to Length(aString) do
buffer[i-1] := aString[i];
Delphi-Quellcode:
buffer := aString;
|
Re: Über Skype Nachrichten verschicken
Weil du sagst es kann wegen der API nicht gehn..
Hab mir gerade nochmal das PlugIn für Miranda angeschaut und indem kann man so lange Nachrichten verschicken wie man will über Skype ![]() |
Re: Über Skype Nachrichten verschicken
Zitat:
Da aber storm1988 im ersten Beitrag und auch in #6 gesagt hat das es nicht an der API liegt, ist der Fehler wohl in dem Delphi-Code zu suchen. |
Re: Über Skype Nachrichten verschicken
In diesem Code ist aber nunmal kein Fehler ... jedenfalls wenn es bei 1024 funktioniert und er wirklich nur die 1023 erhöht hat, so wie er es sagt.
Demnach kann das Problem nur noch in der API liegen ;) Eventuell muß man halt wirklich dieser API erst sagen, daß man mit mehr als 1024 Byes arbeiten möchte ;) |
Re: Über Skype Nachrichten verschicken
So,
hab jetzt herausgefunden, dass der Source schon bei ca. 100 Zeichen nimmer geht ^^ Hat jetzt irgend wer noch ne Idee wie ich das Problem löse oder einen Link zu ner anderen Komponente :?: |
Re: Über Skype Nachrichten verschicken
Dumme frage: erlaut Sendmessage eigentlich so große Nachrichten oder gibt es eine Größenbegrenzung für Windowsnachrichten?
nur so ne Idee. Ratte |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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