使用 AutoIt 在 MT4 中检索余额

Retrieve Balance in MT4 using AutoIt

我正在尝试获取名为 MetaTrader Terminal 4 的软件 listView 的值(有关详细信息,请参阅 )。

我能够检索到行数,但仅此而已,而不是实际的项目文本(而且我已经尝试了很多 许多 方法)。

从外部程序中检索值怎么这么难?

还有其他方法吗?

$Win2 = WinGetHandle( "2000100748" , "EURAUD") ;get window handle
ConsoleWrite("$Win2="&$Win2&@lf)
$Ctl2 = ControlGetHandle ($Win2,"",'[CLASS:SysListView32; INSTANCE:4]') ;get treeview inside $Win2 handle
ConsoleWrite("$Ctl2="&$Ctl2&@lf)

$aa = ControlListView($Win2, "", "[CLASS:SysListView32; INSTANCE:4]", "Selectall")
MsgBox($MB_SYSTEMMODAL,"", $aa)

$a =  _GUICtrlListView_GetItemCount($Ctl2)
MsgBox($MB_SYSTEMMODAL,"", $a)

$b = _GUICtrlListView_FindText ($Ctl2,"Volume")
MsgBox($MB_SYSTEMMODAL,"", $b)

编辑:使用_GUICtrlListView_GetItemTextString($Ctl2, $i)时 结果我得到“|||||||

谢谢

杰夫

可以使用 MQL4 可用的工具来帮助更好地自动化任务:

MetaTrader Terminal 4 具有内置编程语言 (MQL4)。这提供了一个人可能需要的所有可能的自动化工具,包括。帐户利润、余额和所有其他详细信息。

根据需要,double AccountBalance()可以获得

  • 印刷 Print( "Account balance = ", AccountBalance() );

  • 在图形区域

  • 中显示Comment( "Account balance = ", AccountBalance() );
  • 已存储 FileWrite( aFileHANDLE, "Account balance = ", AccountBalance() );

  • 已发送SendMail( "Account balance = " + (string) AccountBalance() ) ); 通过电子邮件

无论是使用 AutoIt 还是其他工具,无论哪种帐户余额明细表示形式更容易满足自动化需求。