Skype コントロール ライブラリ – メタトレーダー用ライブラリ 4

0
(0)

In the automatic trading Skype can be used for sending text messages with the necessary information. この場合、Skype での作業はライブラリ Skype4COM を介して実現されます。, すなわち. プログラム管理へのアクセスを表す ActiveX コンポーネント. Skype4COMは開発者の公式Webサイトからダウンロードできます。: http://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

整数 SkypeSendInstantMessageW( skype_name, message,整数 status);
整数 SkypeSendInstantMessageA( skype_name, message,整数 status);// メタトレーダー用 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 Skype Control Library - library for MetaTrader 4 2
Skype Control Library - library for MetaTrader 4 3 Offline
STATUS_ONLINE 2 Skype Control Library - library for MetaTrader 4 4 オンライン
STATUS_AWAY 4 Skype Control Library - library for MetaTrader 4 5 Out of place
STATUS_DONT_DISTURB 16 Skype Control Library - library for MetaTrader 4 6 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:

 InpSkypeName     =  "echo123";        // Skype name
 InpTextMessage   =  "こんにちは :)";       // メール

 msg;
ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY);

もしも(err==ERROR_NO_ERRORS) msg=文字列形式("Sent IM to %s, %s",InpSkypeName,InpTextMessage);
それ以外 msg=文字列形式("Error sending IM to %s, エラー: %s",InpSkypeName,EnumToString(err));

印刷する(msg);

2. Sending SMS messages

The service to send SMS messages is fee-paid at the moment!

整数 SkypeSendSmsMessageW( phone_number,  message);
整数 SkypeSendSmsMessageA( phone_number,  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:

入力  InpPhoneNumber   =  "+380123456789";  // Phone number
入力  InpTextMessage   =  "こんにちは :)";       // メール

 msg;
ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage);

もしも(err==ERROR_NO_ERRORS) msg=文字列形式("Sent SMS to %s, %s",InpPhoneNumber,InpTextMessage);
それ以外 msg=文字列形式("Error sending SMS to %s, エラー: %s",InpPhoneNumber,EnumToString(err));

印刷する(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.

Skype Control Library - library for MetaTrader 4 7

After conforming access to Skype, the requesting process enters to the list stored in the program settings: ツール -> オプション -> Advanced -> Manage other programs' access to Skype.

Skype Control Library - library for MetaTrader 4 8

 

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.

この投稿は役に立ちました?

星をクリックして評価してください!

平均評価 0 / 5. 投票数: 0

これまでのところ投票はありません! この投稿を最初に評価してください.

この投稿が役に立たなかったことをお詫び申し上げます!

この投稿を改善しましょう!

この投稿を改善する方法を教えてください?



著者: 外国為替ウィキチーム
私たちは経験豊富な外国為替トレーダーのチームです [2000-2023] 自分の思いどおりに人生を生きることに専念している人. 私たちの主な目的は、経済的自立と自由を獲得することです, 私たちは自立可能なライフスタイルを実現する手段として、独学で外国為替市場での豊富な経験を積んできました。.