- जून 19, 2014
- के द्वारा प्रकाशित किया गया: विदेशी मुद्रा विकी टीम
- वर्ग: विशेषज्ञ सलाहकार
In the automatic trading Skype can be used for sending text messages with the necessary information. इस मामले में स्काइप के साथ काम लाइब्रेरी Skype4COM के माध्यम से किया जाता है, अर्थात. एक ActiveX घटक जो प्रोग्राम प्रबंधन तक पहुंच का प्रतिनिधित्व करता है. आप डेवलपर्स की आधिकारिक वेबसाइट से Skype4COM डाउनलोड कर सकते हैं: एचटीटीपी://dev.skype.com/accessories/skype4com
Skype4COM.dll file must be installed and registered.
For an operating system x86:
- Copy to the %systemroot%\System32 folder;
- Run in the command line: %systemroot%\System32\regsvr32.exe %systemroot%\System32\Skype4COM.dll.
For an operating system x64:
- Copy to the %systemroot%\SysWOW64 folder;
- Run in the command line: %systemroot%\SysWOW64\regsvr32.exe %systemroot%\SysWOW64\Skype4COM.dll.
This SkypeMQL.dll library file must be installed in the folder: [terminal directory]\MQL5\Libraries
1. Sending instant messages
int यहाँ SkypeSendInstantMessageW(string skype_name,string message,int यहाँ status); int यहाँ SkypeSendInstantMessageA(string skype_name,string message,int यहाँ status);// for MetaTrader 4
There are several tests in a function before sending instant message:
- The user name cannot be empty or begin with a number.
- The user with the specified name must be in the contact list.
- The message cannot be an empty string.
- The network status of the recipient must coincide with the specified value.
The list of the network status constants:
constant name | कीमत | description |
---|---|---|
STATUS_OFFLINE | 1 | Offline |
STATUS_ONLINE | 2 | ऑनलाइन |
STATUS_AWAY | 4 | Out of place |
STATUS_DONT_DISTURB | 16 | Do not disturb |
To set several allowed statuses simultaneously bit-by-bit addition of constants is used, उदाहरण के लिए: STATUS_ONLINE | STATUS_AWAY.
The maximum length of an instant message is ~8000 ANSI symbols, ~4000 Unicode symbols.
The example of a code:
string InpSkypeName = "echo123"; // Skype name string InpTextMessage = "नमस्ते :)"; // Text message string msg; ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY); अगर(err==ERROR_NO_ERRORS) msg=स्ट्रिंगफॉर्मेट("Sent IM to %s, %एस",InpSkypeName,InpTextMessage); else msg=स्ट्रिंगफॉर्मेट("Error sending IM to %s, गलती: %एस",InpSkypeName,EnumToString(err)); Print(msg);
2. Sending SMS messages
The service to send SMS messages is fee-paid at the moment!
int यहाँ SkypeSendSmsMessageW(string phone_number, string message); int यहाँ SkypeSendSmsMessageA(string phone_number, string message);// для MetaTrader 4
There are several tests before sending SMS message:
- The telephone number must be specified in the international format: + [country code] [city or network code] [telephone number]
- The length of the string which contains the telephone number must be at least 7 symbols and start with a '+' sign
- Text message must not be an empty string
Sending SMS to a non existing number is not an error. The cost for this operation will be charged, but returned after a short time, as the actual message wasn't delivered.
The SMS message is limited to 116 ANSI symbols, 58 Unicode symbols.
The example of a code:
इनपुट string InpPhoneNumber = "+380123456789"; // Phone number इनपुट string InpTextMessage = "नमस्ते :)"; // Text message string msg; ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage); अगर(err==ERROR_NO_ERRORS) msg=स्ट्रिंगफॉर्मेट("Sent SMS to %s, %एस",InpPhoneNumber,InpTextMessage); else msg=स्ट्रिंगफॉर्मेट("Error sending SMS to %s, गलती: %एस",InpPhoneNumber,EnumToString(err)); Print(msg);
3. Description of the return values
Both functions return an integer value which can be analyzed, यदि आवश्यक है.
constant name | कीमत | description |
---|---|---|
ERROR_UNKNOWN | -1 | Unknown error |
ERROR_NO_ERRORS | 0 | Successful execution |
ERROR_ATTACH | 1 | Failed to connect to Skype |
ERROR_AUTHORIZED | 2 | There is no specified user in the contact list |
ERROR_STATUS | 3 | Invalid user status |
ERROR_TIMEOUTS | 4 | Timed out |
ERROR_RUNNING | 5 | Skype is not loaded to memory |
ERROR_SENDING | 6 | Sending error |
ERROR_VALUE | 7 | Transferred parameters error |
ERROR_ACCESS | 8 | Access to Skype is denied |
ERROR_SKYPE4COM | 9 | for x86: Skype4COM.dll is not registered for x64: COM-object creation error |
4. The first launch
At first connection MetaTrader 5 to Skype a pop up window appears which enables program management access.
After conforming access to Skype, the requesting process enters to the list stored in the program settings: Tools -> विकल्प -> Advanced -> Manage other programs' access to Skype.
5. Runtime errors
By unknown reasons, the work with the library compiled for MetaTrader 5 x64 ends with "Stack overflow" गलती. If it is connected with Skype4COM, then you have to wait for the new messages where this error will be corrected.
The attachment has an archive with library source code (a project for Microsoft Visual C++ 2010) and test script to check its performance.