MQL4でWindowsコマンドを実行する

 MQL4からWindowsのcmd.exeを実行するためのモジュールを作成しました。

準備

GithubからCommand.mqhをダウンロードして下さい。

MT4のデータフォルダを開き、MQL4/Include/mql4_modules/Command/Command.mqhとして保存します。

mql4のコード内でCommand.mqhをincludeしたら準備完了です。

#include <mql4_modules/Command/Command.mqh>

使い方

 Command::cmdの引数に実行したいコマンドを渡すことで、cmd.exeでコマンドを実行します。成功した場合はtrue, 失敗した場合はfalseが返り値となります。

if(!Command::cmd("/c curl \"https://hoge.com\"")) {
  Print("エラー");
}

仕組み

 モジュール内でshell32.dllのShellExecuteW関数をimportしています。ShellExecuteWは特定のファイルを実行できる関数です。CommandモジュールではShellExecuteWを使ってcmd.exeを実行しています。
 ShellExecuteWを使えばcmd.exe以外のファイルも実行できるので、他にもいろいろ面白い処理が作れそうな気がします。ShellExecuteWを使ってまた何か新しいモジュールを使ったら紹介させていただきます。

arrow_upward