エラー、バグ、質問 - ページ 2523 1...251625172518251925202521252225232524252525262527252825292530...3185 新しいコメント 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の内部コマンドのようなものではないのでしょうか? しかし、内部コマンドはレジスタメッセージなしでは動作しないようです。 fxsaber 2019.07.31 12:07 #25223 TheXpert: しかし、内部コマンドはレジスタメッセージなしでは動作しないようです。 MT4のRegisterのやり方は誰でも知っている。でも、MT5は...。 TheXpert 2019.07.31 12:15 #25224 fxsaber: MT4のRegisterのやり方は誰でも知っている。でも、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: ありがとうございます、わかりました。ここで 手にしたメンスピープログラムはとても役に立ちました。 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...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
WM_CONTEXTMENUで動作しました。
コードを少しいじったので、デバッグがしやすくなり、再利用も可能です。
ありがとうございます!メニューが表示されます。
メニューの選び方に戸惑う。WM_ENTERIDLEとMN_GETHMENUを試しましたが、ダメでした。
あるメニュー項目を選択すること自体が、MT5内部のコマンドではないのですか?
ZZY このオプションは機能しませんでした。
特定のメニューを選択すること自体が、MT5の内部コマンドのようなものではないのでしょうか?
しかし、内部コマンドはレジスタメッセージなしでは動作しないようです。
MT4のRegisterのやり方は誰でも知っている。でも、MT5は...。
MT4のRegisterのやり方は誰でも知っている。でも、MT5は...。
このソースブックに あるアイデアを使おうとしたが、またしても うまくいかなかった
このソースコードに あるアイデアを使おうとしたが、また失敗 した
キーボードの矢印を押して、メニューをクリックすることをシミュレートしているようです。
ありがとうございます、わかりました。ここで 手にしたメンスピープログラムはとても役に立ちました。
具体的なフレーズに反応したのです。落ち着いてください。バレリアンを飲んで寝ましょう、心配するのは体に悪いです。...「C++」と聞いて熱くなる人もいるのでは?
あなただけに返信したのではありませんよ、わからないのであれば、あなたのフレーズはかなり露骨です・・・。心配かどうかは、あなたが参加しなくても、私が自分で決めます。だから失礼のないように、バレリアンを飲むと、私の言うことが嫌になりますよ。
MQLとC++の違いに興味を持ち、憤慨し、困惑している皆さんは、別のトピックを立てて、そこで勝手に議論してください。それとも、お手伝いしましょうか?