入門編 ~マクロ実行中なのか、マクロ実行中以外なのか~

概要

hm.NETでは通常、マクロを実行して、「マクロ実行中の一瞬の間」で、あなたが制作した「.dll」を読み込み&実行し、
マクロの実行が終わった後も、.dll内では常駐しつづけて続きの処理を実行する、というパターンが一般的となります。
この「マクロ実行中か否」かは、 「hm.NET の制限」と「マクロスコープ」の関係を理解する上で最重要ですので読み流さないようにしてください。

マクロ実行中かどうか

  • C#側のソース

    マクロ中でもマクロ中以外でも、常時取得することが出来ます。

    Hm.Macro.IsExecuting
    MyTestForm.cs
    using System;
    using System.Windows.Forms;
    using Hidemaru;
    
    namespace HmTest
    {
        partial class HmTestForm
        {
            protected void MethodCreate()
            {
                System.Diagnostics.Trace.WriteLine("フォーム生成時");
    
                if (Hm.Macro.IsExecuting)
                {
                    System.Diagnostics.Trace.WriteLine("マクロ実行中です。");
                }
                else
                {
                    System.Diagnostics.Trace.WriteLine("マクロ実行中ではありません");
                }
            }
            protected void MethodTick()
            {
                if (Hm.Macro.IsExecuting)
                {
                    System.Diagnostics.Trace.WriteLine("マクロ実行中です。");
                }
                else
                {
                    System.Diagnostics.Trace.WriteLine("マクロ実行中ではありません");
                }
                System.Diagnostics.Trace.WriteLine("チック時");
            }
            protected void MethodDestroy()
            {
                System.Diagnostics.Trace.WriteLine("フォームクローズ時");
            }
        }
    
    }
    
    
  • 秀丸マクロ側のソース

    前章の「HmNETTest.mac」と同一です。
    一度マクロを実行し、「デバッグモニター」にどのように順次表示されるか確認しましょう。