Aufgrund der Diskussion hier, hab ich das ganze mal getestet.
Mit dem Script kann man ein Fenstermakro an auf einer bestimmten Seite mit X- & Y-Koordinaten einfügen.

Mir ist nicht ganz klar was passiert wenn das Laden des Makros (übers Netzwerk) länger dauert. Denke aber dann würde es nicht funktionieren.
Hab hier im Beispiel mal eine Sekunde Wartezeit eingebaut.
Und die Maus sollte beim Ausführen nicht bewegt werden. Denke könnte man auch irgendwie blocken.
Mal ne Idee: Man wartet auf das Resultat des CLI  fürs einfügen.

Danke an SgbMarkus für das Bereitstellen des Codes.

using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;

public class Script
{
  [Start]
  public void Action()
  {
    InsertMacro(@"C:\Test\Test.ema", "/2");
  }

  private void InsertMacro(string macroFileName, string pageName)
  {
    Edit(pageName);
    Parallel.Invoke(() =>
                      InsertMacro(macroFileName),
                    KeyPress);
  }

  private static void InsertMacro(string macroFileName)
  {
    ActionCallingContext acc = new ActionCallingContext();
    acc.AddParameter("Name", "XMIaInsertMacro");
    acc.AddParameter("filename", macroFileName);
    acc.AddParameter("variant", "0");
    CommandLineInterpreter cli = new CommandLineInterpreter();
    cli.Execute("XGedStartInteractionAction", acc);
  }

  private static void Edit(string pageName)
  {
    ActionCallingContext acc = new ActionCallingContext();
    acc.AddParameter("PAGENAME", pageName); // Full page name
    acc.AddParameter("X", "100");
    acc.AddParameter("Y", "100");
    CommandLineInterpreter cli = new CommandLineInterpreter();
    cli.Execute("edit", acc);
  }

  private void KeyPress()
  {
    Thread.Sleep(1000);
    SendKeys.SendWait("{ENTER}");
  }
}