错误、漏洞、问题 - 页 1620 1...161316141615161616171618161916201621162216231624162516261627...3184 新评论 Dmitri Custurov 2016.07.28 19:49 #16191 不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在一个基金会,那里的服务器通常在一夜之间被关闭。 Vladimir Karputov 2016.07.28 20:16 #16192 Dmitri Custurov: 不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在一个基金会,那里的服务器通常在晚上关闭。 而在这种情况下(长期缺乏连接),如果你运行 "文件"->"连接到交易账户 "的命令,在窗口中的交易账户会不会完全一样? Dmitri Custurov 2016.07.28 20:41 #16193 完全一样。我只设置了一个账户。 pavlick_ 2016.07.28 20:54 #16194 Dmitri Custurov: 大家好。我几页前就问过这个问题,但我要再试一次。 当MT5服务器连接中断时,有没有办法重新登录我的账户?在论坛上搜索,没有得到任何信息。 如果我重新启动终端,它是否开始运行EA(我没有安装终端,我无法检查)?如果是,那么你可以写一个shell脚本来完成重启。并从你的EA中拉出这个脚本。 Vasiliy Sokolov 2016.07.28 21:23 #16195 Dmitri Custurov: 不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在通常在夜间关闭服务器的基金中。 这要么是一个错误,要么是经纪人的一个特定设置。请与服务台 联系这个问题。这不应该发生。 Alexey Navoykov 2016.07.29 05:43 #16196 开发人员能否对承诺但尚未实现的通过引用返回 函数值 的能力作出评论? 他们是否没有着手处理,或者存在一些困难? Vladimir Karputov 2016.07.29 08:58 #16197 Dmitri Custurov: 不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在一个基金会,那里的服务器通常在晚上关闭。这里是调出 "文件 "菜单的脚本--"连接到交易账户"--点击 "确定 "按钮--因此终端将连接到最后一个被认证的交易账户。//+------------------------------------------------------------------+ //| ClickMenu.mq5 | //| Copyright © 2016, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2016, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property script_show_inputs input int number_menu=1; //меню "Файл" input int item_menu=14; //пункт "Подключиться к торговому счёту" #ifndef _IsX64 #define HWND long #define HMENU long #define HBITMAP long #define ULONG_PTR long #else #define HWND int #define HMENU int #define HBITMAP int #define ULONG_PTR int #endif #define UINT int #define GA_ROOT 0x0002 // Retrieves the root window by walking the chain of parent windows #define WM_COMMAND 0x0111 #define MIIM_STRING 0x00000040 #define MIIM_SUBMENU 0x00000004 #define BM_CLICK 0x000000F5 #import "user32.dll" int GetLastError(); //+------------------------------------------------------------------+ //| GetAncestor. Retrieves the handle to the ancestor of the | //| specified window. Извлекает дескриптор предка заданного окна | //+------------------------------------------------------------------+ HWND GetAncestor(HWND hwnd,UINT gaFlags); HMENU GetMenu(HWND hWnd); //int GetMenuItemCount(HMENU hMenu); HMENU GetSubMenu(HMENU hMenu,int nPos); int GetMenuItemID(HMENU hMenu,int nPos); bool PostMessageW(HWND hWnd,UINT Msg,int wParam,int lParam); HWND GetLastActivePopup(HWND hWnd); HWND GetDlgItem(HWND hDlg,int nIDDlgItem); #import //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long mainChartID=ChartID(); //возвращает идентификатор текущего графика int hdlmainChartID=ChartWindowsHandle(mainChartID); //получает хэндл графика HWND hdlRoot=GetAncestor(hdlmainChartID,GA_ROOT); //получает хендл предка указанного окна //Print("hdlRoot = ",IntegerToString(hdlRoot)); HMENU hmenu=GetMenu(hdlRoot); //получает хэндл главного меню терминала /*int count_hmenu=GetMenuItemCount(hmenu); Print("в главном меню ",IntegerToString(count_hmenu)," элементов");*/ HMENU hsubmenu=GetSubMenu(hmenu,number_menu); //получает хэндл заданного подменю ("Файл") /*int count_hsubmenu=GetMenuItemCount(hsubmenu); Print("в подменю ",IntegerToString(number_menu)," ",IntegerToString(count_hsubmenu)," элементов");*/ int hpos=GetMenuItemID(hsubmenu,item_menu); //получает хэндл пункта "Подключиться к торговому счёту" PostMessageW(hdlRoot,WM_COMMAND,hpos,0); //кликаем на пункт "Подключиться к торговому счёту" Sleep(2000); HWND hlastPopup=GetLastActivePopup(hdlRoot); //получает хендл последнего PopUp меню HWND hOK=GetDlgItem(hlastPopup,0x00000001); //получает хенд кнопки из диалога PostMessageW(hOK,BM_CLICK,0,0); //кликаем на кнопку "OK" } //+------------------------------------------------------------------+ //| The function gets the handle graphics | //| Функция получает хэндл графика | //+------------------------------------------------------------------+ int ChartWindowsHandle(long chart_ID) { //--- prepare the variable to get the property value //--- подготовим переменную для получения значения свойства long result=-1; //--- reset the error value //--- сбросим значение ошибки ResetLastError(); //--- receive the property value //--- получим значение свойства if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result)) { //--- display the error message in Experts journal //--- выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ",GetLastError()); } //--- return the value of the chart property //--- вернем значение свойства графика return((int)result); } //+------------------------------------------------------------------+ 如果一切正常,我将清理代码并在KodoBase发布。 附加的文件: ClickMenu.mq5 5 kb Maxim Khrolenko 2016.07.29 10:34 #16198 MQL4。StringToCharArray() 的描述是 "象征性地将一个从unicode转换为ansi的字符串复制到一个ucar类型的数组的指定位置"。我的印象是,在描述中存在一个错误。通过这个函数,你可以简单地将一个字符转换为对应的数字,这取决于字符编码(该函数有5个参数)。也就是说,这里没有"......从unicode到ansi...... "的转换。如果我说错了,请纠正我。如果我需要找到代码,例如,为Ansi的€符号,那么在第5个参数的位置,我将写CP_ACP。如果是UTF7,那么就是CP_UTF7。如果是Unicode,我使用StringToShortArray()(见脚本)。#property strict void OnStart() { string a = "€"; // euro symbol uchar ArrayAnsi[1], ArrayUTF7[1]; ushort ArrayUnicode[1]; int Count; Count=StringToCharArray(a,ArrayAnsi,0,WHOLE_ARRAY,CP_ACP); Print("1) € in Ansi = ",IntegerToString(ArrayAnsi[0])); Count=StringToCharArray(a,ArrayUTF7,0,WHOLE_ARRAY,CP_UTF7); Print("2) € in UTF7 = ",IntegerToString(ArrayUTF7[0])); Count=StringToShortArray(a,ArrayUnicode,0,WHOLE_ARRAY); Print("3) € in Unicode = ",IntegerToString(ArrayUnicode[0])); } Alexey Navoykov 2016.07.29 10:35 #16199 编译器中的一个错误。template<typename T> void Func (T&) { } template<typename T> void Func (T*&) { } template<typename T> void InterFunc(T& var) { Func(var); } // 'var' - parameter conversion not allowed class A { }; void F1() { A a; InterFunc(a); } void F2() { A* a; Func(a); }然而,如果你删除F2函数,它就能正常编译。 Alexey Navoykov 2016.07.29 11:25 #16200 编译器错误。class A { }; void Func(A* const&) { } void OnStart() { A* const a= NULL; Func(a); // 'a' - cannot convert from const pointer to nonconst pointer } 1...161316141615161616171618161916201621162216231624162516261627...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在一个基金会,那里的服务器通常在晚上关闭。
大家好。我几页前就问过这个问题,但我要再试一次。 当MT5服务器连接中断时,有没有办法重新登录我的账户?在论坛上搜索,没有得到任何信息。
不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在通常在夜间关闭服务器的基金中。
不幸的是,并非总是如此。如果你长时间不连接,终端会发出 "账户禁用 "的提示,然后你必须手动登录。这种情况发生在一个基金会,那里的服务器通常在晚上关闭。
这里是调出 "文件 "菜单的脚本--"连接到交易账户"--点击 "确定 "按钮--因此终端将连接到最后一个被认证的交易账户。
如果一切正常,我将清理代码并在KodoBase发布。
MQL4。StringToCharArray() 的描述是 "象征性地将一个从unicode转换为ansi的字符串复制到一个ucar类型的数组的指定位置"。我的印象是,在描述中存在一个错误。通过这个函数,你可以简单地将一个字符转换为对应的数字,这取决于字符编码(该函数有5个参数)。也就是说,这里没有"......从unicode到ansi...... "的转换。如果我说错了,请纠正我。
如果我需要找到代码,例如,为Ansi的€符号,那么在第5个参数的位置,我将写CP_ACP。如果是UTF7,那么就是CP_UTF7。如果是Unicode,我使用StringToShortArray()(见脚本)。
编译器中的一个错误。
然而,如果你删除F2函数,它就能正常编译。
编译器错误。