带有按钮和鼠标点击拦截的自动化。 - 页 5 123456789101112 新评论 Виктор 2008.11.15 18:47 #41 xeon >> : 这是一个很好的终端:-))) 我们都有一个这样的终端。而且在某种意义上,它有一个红色的按钮。 只是你必须用警棍敲打自己的脑袋。:)) Nefedov Kirill 2008.11.15 18:53 #42 伊尔努尔,按钮的文字也可以通过某种方式阅读。程序Spy++会读取它。 即逻辑是,只要按钮被设置为 "停止",我们就等待进一步的行动。 给我一个User32.dll的函数,它能正确地拉出按钮的文本。 GetDlgItemText函数 描述。 函数 GetDlgItemText(Dlg: HWnd; IDDlgItem: Integer; Str: PChar; MaxCount: Integer): Integer。 读取控件的文本。 参数。 Dlg: 对话框的标识符。 IDDlgItem: 项目的ID。 Str: 接收文本的缓冲区。 MaxCount: 缓冲区的大小。 返回的值。 实际复制的字符数。 #import "user32.dll" string GetDlgItemText (int hWnd, int IDDlgItem, string PChar, int MaxCount); ##进口 我连接的功能是否正确。 因为终端在日志中显示我 2008.11.15 21:03:41 tester EURUSD,H1: 不能从dll 'user32.dll'调用函数'GetDlgItemText'(错误127)。 Automation with button and Nefedov Kirill 2008.11.15 19:06 #43 xeon >> : 这是一个很好的终端:-))) Xeon,你才是始作俑者.... 我自己不会进入这一步......但我不需要.... Ilnur Iksanov 2008.11.15 19:27 #44 HIDDEN >> : . . . #import "user32.dll" string GetDlgItemText (int hWnd, int IDDlgItem, string PChar, int MaxCount); ##进口 我连接的功能是否正确。 因为终端在日志中显示我 2008.11.15 21:03:41 tester EURUSD,H1: 不能从dll 'user32.dll'调用函数'GetDlgItemText'(错误127)。 它更像是这样.. . #import "user32.dll" int GetDlgItemTextA(int hWnd, int IDDlgItem, string PChar, int MaxCount); #import Nefedov Kirill 2008.11.15 19:38 #45 Ilnur >> : >>它更像这样。. . 这将返回一个整数,但你需要按钮的文本。 Ilnur Iksanov 2008.11.15 19:44 #46 HIDDEN >> : 这将返回一个整数,但你需要按钮的文本。 该文本在PChar字符串缓冲区中返回。 该函数本身返回实际读取的字符数。 Ilnur Iksanov 2008.11.15 19:45 #47 HIDDEN >> : 伊尔努尔,按钮的文字也可以通过某种方式阅读。Spy++程序会读取它。 下面是一个启动策略测试器并等待其完成的脚本例子。使用GetWindowTextA() 读取按钮的文本。 有趣的是,在这种情况下,测试器窗口不一定要可见。 #include <WinUser32.mqh> #import "user32.dll" int GetAncestor(int hWnd, int gaFlags); int GetDlgItem(int hDlg, int nIDDlgItem); #import void start() { int hMetaTrader, hTerminal, hTester, hButtonStart; hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала hTerminal = GetDlgItem(hMetaTrader,0xE81E); hTester = GetDlgItem(hTerminal,0x53); hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A); //дескриптор кнопки "Старт" PostMessageA(GetDlgItem(hTester,0x81BF),WM_COMMAND,0x40A,hButtonStart); //нажимаем кнопку старт Print("Запуск тестера стратегий"); string sButtonStartName = ""; while(!IsStopped()) { Sleep(3000); GetWindowTextA(hButtonStart,sButtonStartName,6); //считываем текст кнопки запуска тестера if(sButtonStartName=="Старт") { Print("Работа тестера завершена"); break; } } } Nefedov Kirill 2008.11.15 19:52 #48 Ilnur >> : 下面是一个启动策略测试器并等待其完成的脚本例子。使用GetWindowTextA() 读取按钮的文本。 有趣的是,测试器窗口不需要是可见的。 非常感谢你。我在哪里可以至少读到所有这些功能,并看一下如何使用它们的例子?我在互联网上到处打探寻找,但没有什么帮助。也许有一本关于Win API的好书?仅仅描述该函数的作用还是不够的。 Ilnur Iksanov 2008.11.15 20:01 #49 HIDDEN >> : 非常感谢你。我在哪里可以至少读到所有这些功能,并看一下如何使用它们的例子?我一直在互联网上打探寻找,但没有什么帮助。也许有一本关于Win API的好书?仅仅描述这个功能的作用可能是不够的。 所有关于WinAPI函数的信息我都是从MSDN得到的。我已经习惯了这种方式。 P.S. 很遗憾,我从未见过一本关于WinAPI的好书。 Nefedov Kirill 2008.11.15 20:22 #50 Ilnur >> : 我从MSDN获得所有关于WinAPI函数的信息。我更习惯于.... P.S. 不幸的是,我从未见过一本关于WinAPI的好书。 鼠标第一个按钮上打开的菜单是如何被拦截的?当你从终端切换到另一个程序时,菜单消失了,你就是抓不住它。有什么办法可以停止这个程序吗? 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是一个很好的终端:-)))
我们都有一个这样的终端。而且在某种意义上,它有一个红色的按钮。
只是你必须用警棍敲打自己的脑袋。:))
伊尔努尔,按钮的文字也可以通过某种方式阅读。程序Spy++会读取它。
即逻辑是,只要按钮被设置为 "停止",我们就等待进一步的行动。
给我一个User32.dll的函数,它能正确地拉出按钮的文本。
GetDlgItemText函数
描述。
函数 GetDlgItemText(Dlg: HWnd; IDDlgItem: Integer; Str: PChar; MaxCount: Integer): Integer。
读取控件的文本。
参数。
Dlg: 对话框的标识符。
IDDlgItem: 项目的ID。
Str: 接收文本的缓冲区。
MaxCount: 缓冲区的大小。
返回的值。
实际复制的字符数。
#import "user32.dll"
string GetDlgItemText (int hWnd, int IDDlgItem, string PChar, int MaxCount);
##进口
我连接的功能是否正确。
因为终端在日志中显示我
2008.11.15 21:03:41 tester EURUSD,H1: 不能从dll 'user32.dll'调用函数'GetDlgItemText'(错误127)。
这是一个很好的终端:-)))
Xeon,你才是始作俑者....
我自己不会进入这一步......但我不需要....
. . .
#import "user32.dll"
string GetDlgItemText (int hWnd, int IDDlgItem, string PChar, int MaxCount);
##进口
我连接的功能是否正确。
因为终端在日志中显示我
2008.11.15 21:03:41 tester EURUSD,H1: 不能从dll 'user32.dll'调用函数'GetDlgItemText'(错误127)。
>>它更像这样。. .
这将返回一个整数,但你需要按钮的文本。
这将返回一个整数,但你需要按钮的文本。
该文本在PChar字符串缓冲区中返回。
该函数本身返回实际读取的字符数。
伊尔努尔,按钮的文字也可以通过某种方式阅读。Spy++程序会读取它。
下面是一个启动策略测试器并等待其完成的脚本例子。使用GetWindowTextA() 读取按钮的文本。
有趣的是,在这种情况下,测试器窗口不一定要可见。
下面是一个启动策略测试器并等待其完成的脚本例子。使用GetWindowTextA() 读取按钮的文本。
有趣的是,测试器窗口不需要是可见的。
非常感谢你。我在哪里可以至少读到所有这些功能,并看一下如何使用它们的例子?我在互联网上到处打探寻找,但没有什么帮助。也许有一本关于Win API的好书?仅仅描述该函数的作用还是不够的。
非常感谢你。我在哪里可以至少读到所有这些功能,并看一下如何使用它们的例子?我一直在互联网上打探寻找,但没有什么帮助。也许有一本关于Win API的好书?仅仅描述这个功能的作用可能是不够的。
所有关于WinAPI函数的信息我都是从MSDN得到的。我已经习惯了这种方式。
P.S. 很遗憾,我从未见过一本关于WinAPI的好书。
我从MSDN获得所有关于WinAPI函数的信息。我更习惯于....
P.S. 不幸的是,我从未见过一本关于WinAPI的好书。
鼠标第一个按钮上打开的菜单是如何被拦截的?当你从终端切换到另一个程序时,菜单消失了,你就是抓不住它。有什么办法可以停止这个程序吗?