错误、漏洞、问题 - 页 2523 1...251625172518251925202521252225232524252525262527252825292530...3184 新评论 fxsaber 2019.07.31 11:26 #25221 Sergey Dzyublik: 它与WM_CONTEXTMENU一起工作。 稍微调整了一下代码,它更容易调试,可以重复使用。 谢谢你,菜单出现了! 困惑于如何选择一个菜单项目。尝试了WM_ENTERIDLE和MN_GETHMENU,没有成功。 选择某个菜单项本身不就是MT5的内部命令吗? ZZY 这个选项没有作用。 const long hwnd = GetMenu(handle); PRINT64(hwnd); PRINT64(user32::SendMessageW(hwnd, WM_KEYDOWN, VK_DOWN, 0)); TheXpert 2019.07.31 11:58 #25222 fxsaber: 选择一个特定的菜单项本身不就是MT5的某种内部命令吗? 是的,这就是一开始所暗示的。但内部命令在没有registermessage的情况下似乎不起作用。 fxsaber 2019.07.31 12:07 #25223 TheXpert: 是的,这就是一开始所暗示的。但内部命令在没有registermessage的情况下似乎不起作用。 每个人都知道如何为MT4做注册。但是MT5... TheXpert 2019.07.31 12:15 #25224 fxsaber: 每个人都知道如何为MT4做注册。但是MT5... 是的。 fxsaber 2019.07.31 12:21 #25225 试图使用这本资料手册 中的想法,又一次没有 成功! string nullstring; const long hpopup=FindWindowW("#32768", nullstring); #define MN_GETHMENU 0x01E1 const long hmenu = SendMessageW(hpopup, MN_GETHMENU,0,0); uint id=GetMenuItemID(hmenu, 0); #define WM_COMMAND 0x0111 SendMessageW(RootHandle,WM_COMMAND,id,0); Sergey Dzyublik 2019.07.31 13:00 #25226 fxsaber: 试图使用这本资料手册 中的想法,又一次没有 成功! #include <WinAPI\winuser.mqh> #define GA_ROOT 0x00000002 #define WM_CONTEXTMENU 0x007B #define MN_GETHMENU 0x01E1 #define TVM_GETITEM 0x110C #define TVM_GETNEXTITEM 0x110A #define PRINT(x) ; Print(#x, ":", string(x)) #define PRINT64(x) ; printf("%s%s%#.08x", #x, ":", x) long GetHandle(long handle, int &controls[]){ long next_handle = handle; for (int i = 0; i < ArraySize(controls); i++){ next_handle = user32::GetDlgItem(next_handle, controls[i]); PRINT64(next_handle); } return next_handle; } void OnStart(){ long RootHandle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT); PRINT64(RootHandle); int controls[] = {0xE81E, 0x804E, 0x28EF, 0x28FE}; long handle = GetHandle(RootHandle, controls); PRINT64(handle); //PRINT(user32::SendMessageW(handle, WM_CONTEXTMENU, 0, -1)); PRINT(user32::PostMessageW(handle, WM_CONTEXTMENU, 0, -1)); PRINT("Sleep"); Sleep(10); long hwnd = FindWindowW("#32768", ""); PRINT64(hwnd); long menu_handle = SendMessageW(hwnd, MN_GETHMENU, 0, 0); PRINT(IsMenu(menu_handle)); PRINT(GetMenuItemCount(menu_handle)); long sub_menu_handle = GetSubMenu(menu_handle, 1); // 9 PRINT(GetMenuItemCount(sub_menu_handle)); // 1 } Igor Zakharov 2019.07.31 13:02 #25227 fxsaber: 试图使用这个源代码 中的想法,同样没有 成功! 它似乎是在模拟按键盘上的箭头和点击菜单。 #define WM_KEYDOWN 0x0100 #define WM_KEYUP 0x0101 #define WM_LBUTTONDOWN 0x0201 #define WM_LBUTTONUP 0x0202 #define VK_UP 0x26 #define VK_DOWN 0x28 //перемещение по меню (сколько пунктов, столько раз) PostMessageW(handle, WM_KEYDOWN, VK_DOWN,0); PostMessageW(handle, WM_KEYUP, VK_DOWN,0); //нажатие пункта SendMessageW(handle,WM_LBUTTONDOWN,0,0); SendMessageW(handle,WM_LBUTTONUP,0,0); fxsaber 2019.07.31 13:23 #25228 Sergey Dzyublik: 谢谢,我知道了。我在这里 挑选的menuspy方案非常有帮助。 Drafts by kero wasm.in (NB: некоторые порой потребуется запускать as admin, а то и as system) -WinDrag Однажды наткнулся на австралийский "The Customiser" by Wanga... [删除] 2019.07.31 18:00 #25229 Alexey Navoykov: 我是在回应一个具体的短语。冷静下来。吃点缬草就去睡觉吧,担心对你没有好处。...有些人一听到 "C++"这个词就热血沸腾。 我并不是只回复你,如果你不明白,你的这句话很能说明问题......我是否担心,我自己会决定,没有你的参与。所以不要粗鲁地喝下一些缬草,你不会喜欢我说的话。 每个对MQL与C++的差异感兴趣、愤怒、困惑的人--创建一个单独的主题,并在那里自行讨论这一切。或者我可以帮忙吗? Artyom Trishkin 2019.07.31 18:08 #25230 突破,火热的芬兰人。 1...251625172518251925202521252225232524252525262527252825292530...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它与WM_CONTEXTMENU一起工作。
稍微调整了一下代码,它更容易调试,可以重复使用。
谢谢你,菜单出现了!
困惑于如何选择一个菜单项目。尝试了WM_ENTERIDLE和MN_GETHMENU,没有成功。
选择某个菜单项本身不就是MT5的内部命令吗?
ZZY 这个选项没有作用。
选择一个特定的菜单项本身不就是MT5的某种内部命令吗?
是的,这就是一开始所暗示的。但内部命令在没有registermessage的情况下似乎不起作用。
每个人都知道如何为MT4做注册。但是MT5...
每个人都知道如何为MT4做注册。但是MT5...
试图使用这本资料手册 中的想法,又一次没有 成功!
试图使用这个源代码 中的想法,同样没有 成功!
它似乎是在模拟按键盘上的箭头和点击菜单。
谢谢,我知道了。我在这里 挑选的menuspy方案非常有帮助。
我是在回应一个具体的短语。冷静下来。吃点缬草就去睡觉吧,担心对你没有好处。...有些人一听到 "C++"这个词就热血沸腾。
我并不是只回复你,如果你不明白,你的这句话很能说明问题......我是否担心,我自己会决定,没有你的参与。所以不要粗鲁地喝下一些缬草,你不会喜欢我说的话。
每个对MQL与C++的差异感兴趣、愤怒、困惑的人--创建一个单独的主题,并在那里自行讨论这一切。或者我可以帮忙吗?