Wysyłanie wiadomości przez Skype z poziomu EA

Kategoria: Repozytorium kodu MQL4 | 7 kwietnia 2009 o 14:30 | Odpowiedzi: 7 | Permalink

Przeglądając ostatnio bazę artykułów witryny MQL4 Community natrafiłem na ciekawy artykuł pt. “Using Skype to Send Messages from an Expert Advisor“.

W artykule opisane jest krok po kroku jak wszystko ustawić i zainstalować, ja pokuszę się jedynie o sporządzenie “esencji” tego artykułu, aby w przyszłości nie trzeba było szukać w całości :)

Sprawa jest o tyle ciekawa, że autorzy udostępniają gotowego DLL-a będącego pomostem między MT4 a DLLem Skype, a więc wysyłanie wiadomości lub SMSa sprowadza się do wklejenia do swojego kodu kilku linijek importujących stosowne funkcje z DLLa:

#import "SkypeLib.dll"
   bool SendSkypeSMS(int &ExCode[], string Num,string Message);
   bool SendSkypeMessage(int &ExCode[], string User, string Message);
#import

Natomiast w stosownym miejscu w kodzie, aby wysłać powiadomienie wystarczy wywołać jedną z powyższych funkcji:

SendSkypeMessage(ExCode, "adresat.wiadomosci", "Skype message test"));
if(ExCode[0]==-1) Alert("Błąd wysyłania wiadomości");

Lub (do wysyłania SMSa):

SendSkypeSMS(ExCode, "+1234567890", "Skype sms test");
if(ExCode[0]==-1) Alert("Błąd wysyłania SMSa");

Oczywiście nie są to SMSy za darmo, ale z pewnością wykorzystana okazja jest warta więcej niż koszt SMSa :)

DLLe wymagane do działania tego kodu umieszczam w spakowanym archiwum poniżej.

7 odpowiedzi do wpisu "Wysyłanie wiadomości przez Skype z poziomu EA"

  • bibi

    24 kwietnia 2009 o 11:30 | Odwiedź stronę WWW autora

    Można to ciekawie wykorzystać ;D

  • aaaa

    19 czerwca 2009 o 16:44

    jakoś mi nie działa ktoś może mi powiedzieć gdzie mam wkleić pliki podane w załączniku?

  • luktom

    19 czerwca 2009 o 16:48 | Odwiedź stronę WWW autora

    experts\libraries

  • aaaa

    19 czerwca 2009 o 23:15

    wkleiłem ale nadal mi nie działa, napisałem taki kod i nadal ni chodzi, nie wiem gdzie mam błąd int ExCode[0]={-1}; SendSkypeMessage(ExCode, "fwig20", "asallallalal"); if(ExCode[0]==-1) Alert("Błąd wysyłania wiadomości");\ nie rozumiem trochę tej zmiennej ExCode, jakie musi przyjąć wartości aby wysłać wiadomość

  • aaaa

    20 czerwca 2009 o 18:40

    bardzo proszę o szybką odpowiedz poniewaz bardzo mi zalezy

  • luktom

    20 czerwca 2009 o 22:44 | Odwiedź stronę WWW autora

    int ExCode[1] <- tak to deklarujesz, a zmienna jest przekazywana przez referencję i służy do zwracania wartości, natomiast nie wpływa na wysyłanie w żaden sposób. Poza tym odsyłam do cytowanego artykułu, tam jest wszystko po kroku opisane co trzeba skonfigurować, aby to chodziło.

  • aaaa

    22 czerwca 2009 o 14:19

    dzięki, wielkie!!!! moja wina, że zapomniałem doczytać cytowanego artykułu PS SendSkypeMessage(ExCode, "adresat.wiadomosci", "Skype message test")); if(ExCode[0]==-1) Alert("Błąd wysyłania wiadomości"); brakuje ci jeszcze allert, dlatego miałem błąd