Skype 控制库 - MetaTrader 5 的库







在自动交易中Skype可用于发送包含必要信息的短信。在这种情况下,与 Skype 的合作是通过库实现的Skype4COM,即代表访问的 ActiveX 组件程序管理。
目前 Skype4COM.dll 随 Skype 一起分发,默认情况下它位于以下文件夹中:
对于 x86 操作系统:
c:\Program Files\Common Files\Skype\Skype4COM.dll
对于 x64 操作系统:
c:\Program Files (x86)\Common Files\Skype\Skype4COM.dll
此 SkypeMQL.dll 库文件必须安装在文件夹中:[终端目录]\MQL5\Libraries
该项目仅支持 32 位版本的 MetaTrader 4/5。
1. 发送即时消息
整数Skype发送即时消息W(细绳Skype_名称,细绳信息,整数地位);整数Skype发送即时消息A(细绳Skype_名称,细绳信息,整数地位);// 对于 MetaTrader 4
在发送即时消息之前,函数中有几个测试:
网络状态常量列表:
要同时设置多个允许的状态,请使用常量的逐位加法,例如: STATUS_ONLINE |状态_离开。
即时消息的最大长度约为 8000 个 ANSI 符号,约 4000 个 Unicode 符号。
代码示例:
细绳InpSkype 名称 = “回声123”; // Skype 名称 细绳InpTextMessage = “你好 :)”; // 短信 细绳味精; ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY);如果(err==ERROR_NO_ERRORS) 消息=字符串格式(“已向 %s 发送即时消息,%s”,InpSkypeName,InpTextMessage);别的味精=字符串格式(“向 %s 发送 IM 时出错,错误:%s”,InpSkype名称,枚举转字符串(犯错));打印(消息);
2. 发送短信
目前发送短信服务是收费的!
整数Skype发送短信W(细绳电话号码,细绳信息);整数Skype发送短信A(细绳电话号码,细绳信息);// 对于 MetaTrader 4
发送短信之前有几个测试:
向不存在的号码发送短信不是错误。此操作的成本将被收取,但会在短时间内返回,因为实际消息未传递。
SMS 消息限制为 116 个 ANSI 符号、58 个 Unicode 符号。
代码示例:
输入 细绳Inp电话号码 = “+380123456789”; // 电话号码 输入 细绳InpTextMessage = “你好 :)”; // 短信 细绳味精; ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage);如果(err==ERROR_NO_ERRORS) 消息=字符串格式(“已发送短信至 %s,%s”,InpPhoneNumber,InpTextMessage);别的味精=字符串格式(“向 %s 发送短信时出错,错误:%s”,Inp电话号码,枚举转字符串(犯错));打印(消息);
3.返回值说明
这两个函数都返回一个整数值,如有必要,可以对其进行分析。
4. 首次启动
首次将 MetaTrader 5 连接到 Skype 时,会出现一个弹出窗口,可启用程序管理访问。

确认访问 Skype 后,请求进程进入程序设置中存储的列表:工具 -> 选项 -> 高级 -> 管理其他程序对 Skype 的访问。

5. 运行时错误
由于未知原因,为 MetaTrader 5 x64 编译的库的工作以“堆栈溢出”错误结束。如果它与 Skype4COM 连接,那么您必须等待新消息来纠正此错误。
附件中包含库源代码(Microsoft Visual C++ 2010 的项目)和用于检查其性能的测试脚本的存档。
附件下载
📎 skypemql.mqh (2.26 KB)
📎 skype_test_script.mq5 (1.76 KB)
Source: MQL5 #1537
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
