hm.NETでは秀丸マクロを文字列で実行可能です。
マクロ実行中のみ実行可能
Hm.Macro.Eval("秀丸マクロの文字列");
秀丸マクロ変数へとC#側から値を伝達(代入)出来るわけですから、 秀丸マクロで提供されている関数も使いたい放題というわけです。
using System; using System.Windows.Forms; using Hidemaru; namespace HmTest { partial class HmTestForm { protected void MethodCreate() { System.Diagnostics.Trace.WriteLine("フォーム生成時"); HmOutputPane("フォーム生成時にアウトプットパネルに出力"); } private void HmOutputPane(String message) { Hm.Macro.Var["$message_tmp_hm_output_pane"] = message; Hm.Macro.Eval(@" #TMP_OUTPUT_PANE_DLL = loaddll(""HmOutputPane.dll""); #ret=dllfunc(#TMP_OUTPUT_PANE_DLL, ""Output"",hidemaruhandle(0), $message_tmp_hm_output_pane + ""\r\n""); freedll(#TMP_OUTPUT_PANE_DLL); "); } protected void MethodTick() { System.Diagnostics.Trace.WriteLine("チック時"); } protected void MethodDestroy() { System.Diagnostics.Trace.WriteLine("フォームクローズ時"); } } }
前章の「HmNETTest.mac」と同一です。 一度マクロを実行し、「デバッグモニター」にどのように順次表示されるか確認しましょう。