#property copyright"Copyright 2015"#property link"http://"#property version"1.00"//#property strict#include <WinUser32.mqh>
#import "IdleLib.dll"int GetLastKeyWP();
int GetLastMouseWP();
int IdleLibInit();
int IdleLibUnInit();
string GetActiveWndName();
#import
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---Alert("Начало.");
IdleLibInit();//инициализируем Dll для перехвата событий.while(IsStopped()==false)
{
int lastkey=GetLastKeyWP(); //Опрашиваем код посл. клавишиint lastmouse=GetLastMouseWP(); //Опрашиваем код мыши.string lastwnd=GetActiveWndName(); //Имя окна Metatrader где произошло событие.if ((lastkey!=0) && (lastwnd!=""))
{
Alert("Код нажатой клавиши=",lastkey," из окна ",lastwnd);
}
if ((lastmouse!=0) && (lastwnd!="") && (lastmouse!=512)) //отражаем все события кроме движения мыши.
{
Alert("Код мыши=",lastmouse," из окна ",lastwnd);
}
Sleep(200);
} //while
IdleLibUnInit();
Alert("Завершение.");
}
谁知道如何发现
longchart_id, // 图表ID。0表示当前图表。
如果图表不是最新的?
谁知道如何发现
longchart_id, // 图表ID。0表示当前的图表。
如果该图表不是当前的图表?
然后你需要选择第一个ChartFirst 来检查它是否是正确的,通过符号和周期,如果不是就选择下一个,以此类推到正确的一个,并定义ChartID
大家好。处理函数库、导入函数(#import)和包含文件(#include)。不太确定谁 "包括 "谁?所以。
这些库位于Libraries文件夹中。这个文件夹可能包含5种(不排除)文件:1-.dll(Windows函数库,已经为MT4修改了#defineMT4_EXPFUNC int __stdcall ...)。
2- .ex4(似乎是编译.mq4或.mqh的结果),3- .dat(我根本没有读到关于它的任何东西),4- .mqh(可能是一个要启用的文件,因为#属性库 被禁用,但Igor Kim有它。
作为一个额外的函数库),5-.mq4(一个自定义函数和包含文件的库,可能包含自定义函数、包含文件、.dll库和其他东西。
包含文件在Include文件夹中,可能包含其他包含文件、自定义函数、.dll库和其他东西。另外,在文件夹Include --> Controls --> res icons(图片).bmp。
我怎么能做(重新制作)脚本,它不工作(对鼠标和键盘的点击没有反应)。也许是因为文件夹Libraries没有user32.dll(虽然它使用WinUser32.mqh,但它不可能在某处不被使用)。
你能告诉我哪里出了问题吗。提前感谢,问题才刚刚开始。
大家好。处理函数库、导入函数(#import)和包含文件(#include)。不太确定谁 "包括 "谁?所以。
这些库位于Libraries文件夹中。这个文件夹可能包含5种(不排除)文件:1-.dll(Windows函数库,已经为MT4修改了#defineMT4_EXPFUNC int __stdcall ...)。
2- .ex4(似乎是编译.mq4或.mqh的结果),3- .dat(我根本没有读到关于它的任何东西),4- .mqh(可能是一个要启用的文件,因为#属性库被禁用,但Igor Kim有它。
作为一个额外的函数库),5-.mq4(一个自定义函数和包含文件的库,可能包含自定义函数、包含文件、.dll库和其他东西。
包含文件在Include文件夹中,可能包含其他包含文件、自定义函数、.dll库和其他东西。另外,在文件夹Include --> Controls --> res icons(图片).bmp。
我怎么能做(重新制作)脚本,它不工作(对鼠标和键盘的点击没有反应)。也许是因为文件夹Libraries中没有user32.dll(虽然它使用了WinUser32.mqh,但它不可能在某个地方没有)。
你能告诉我哪里出了问题吗。提前感谢,问题才刚刚开始。
Libraries文件夹包含。
1)自行编写*.dll。
2) *.ex4 - 带有#属性库 的编译库的结果。
3)*.mq4(非强制性),第2项中的*.ex4由其编译而成。
谢谢你的答复。澄清一下:1)自写的*.dll - Windows函数库或你的代码,已经适应了MT4。2) *.mq4(源文件)将与主文件 或其*.ex4(已编译)一起编译。
(已经编译的)将在编译过程中被包含(添加)到主文件中。对于库的编辑,有源文件更方便。3)解除管制#import只针对*.dll。它位于Libraries文件夹中,因为该库虽然是外部的
职能。4) *.mqh - 包含的文件,未编译(总是源代码)。
我读到,旧的库可能无法工作,因为现在是Unicode。上面的例子有什么问题?
谢谢你的答复。澄清一下:1)自写的*.dll - Windows函数库或你的代码,已经适应了MT4。2) *.mq4(源文件)将与主文件或其*.ex4(已编译)一起编译。
(已经编译的)将在编译过程中被包含(添加)到主文件中。对于库的编辑,有源文件更方便。3)解除管制#import只针对*.dll。它位于Libraries文件夹中,因为该库虽然是一个外部的
职能。4) *.mqh - 包含的文件,未编译(总是源代码)。
我读到,旧的库可能无法工作,因为现在是Unicode。上面的例子有什么问题?
要澄清的是。
1)Windows库不必放在终端沙盒中。
2)*.mq4(源文件),带有#property库 指令(编译后,得到一个*.ex4文件)。如果没有这个指令,文件将不会被编译。
#import指令不仅仅用于*.dll库。查看Include文件夹中的任何*.mqh文件。顺便说一下,这就是*.mqh(头文件)文件应该位于的地方。它们没有被编译。
关于 "旧 "库和Unicode--它是关于自写的*.dll。
我已经知道了所有东西的位置。关于上述剧本的结构。#include< WinUser32.mqh>包含#import "user32.dll" dictive和一个适应的外部函数列表。它还#define(分配助记符名称)到一些
数值。为什么这样做(赋值),甚至有必要包括#include< WinUser32.mqh>文件,因为进一步使用的外部函数属于#import "IdelLib.dll"。
在 "user32.dll "的功能列表中,似乎有其用于劫持鼠标和键盘的功能,但没有找到说明。我想知道如何使它(脚本)正常工作(在Strategy Tester中的交互式面板上工作,尽管其
开发者方面持续存在的缺陷),并且有知识渊博的人。看了几个关于*.dll-libraries的主题。他们轻快地开始,然后谈起了生活。然而,由于某些原因,信息非常少(有描述和例子的工作库)。
我已经知道了所有东西的位置。关于上述剧本的结构。#include< WinUser32.mqh>包含#import "user32.dll" dictive和一个适应的外部函数列表。它还#define(分配助记符名称)到一些
数值。为什么这样做(赋值),甚至有必要包括#include< WinUser32.mqh>文件,因为进一步使用的外部函数属于#import "IdelLib.dll"。
在 "user32.dll "的功能列表中,似乎有其用于劫持鼠标和键盘的功能,但没有找到说明。我想知道如何使它(脚本)正常工作(在Strategy Tester中的交互式面板上工作,尽管其
开发者方面持续存在的缺陷),并且有知识渊博的人。看了几个关于*.dll-libraries的主题。他们轻快地开始,然后谈起了生活。然而,由于某些原因,信息非常少(有描述和例子的工作库)。