Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Über Skype Nachrichten verschicken (https://www.delphipraxis.net/68528-ueber-skype-nachrichten-verschicken.html)

storm1988 1. Mai 2006 09:01


Über Skype Nachrichten verschicken
 
Hallo,

ich habe mir um über Skype Nachrichten zu verschicken diese Komponente heruntergeladen LINK
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:
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 hätte schon versuchte das Array einfach zu vergrößern jedoch ohne erfolg :(

Ich bedanke mich schonmal im vorraus

himitsu 1. Mai 2006 09:02

Re: Über Skype Nachrichten verschicken
 
Delphi-Quellcode:
buffer : array[0..1023] of char;
schau dir mal diese Stelle ganz genau an ;)
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:
buffer : array[0..2047] of char;
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?

storm1988 1. Mai 2006 09:05

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..

mkinzler 1. Mai 2006 09:10

Re: Über Skype Nachrichten verschicken
 
Versuchs mal mit

var
...
buffer: Pointer;
...
begin
GetMem( buffer, 65536);
...

himitsu 1. Mai 2006 09:16

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:
for i := 1 to Length(aString) do
        buffer[i-1] := aString[i];
in ändern
Delphi-Quellcode:
buffer := aString;

storm1988 1. Mai 2006 09:26

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 LINK

mkinzler 1. Mai 2006 09:32

Re: Über Skype Nachrichten verschicken
 
Zitat:

@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 Wink
Außerdem würde er andere Fehler erhalten, wenn r nur den PufferTyp ändert Warning
das diese Änderungen weitere Änderungen im Source-code benötigen war nur zu faul den ganzen Code anzupassen. ;-)
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.

himitsu 1. Mai 2006 09:39

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 ;)

storm1988 1. Mai 2006 12:59

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 :?:

Ratte 1. Mai 2006 14:06

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 06:31 Uhr.
Seite 1 von 2  1 2      

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