static void Main(string[] Arguments) { if (Arguments.Length > 0 && Arguments[0].EndsWith(".efesc")) { if (!Win32Util.AttachConsole(-1)) { Win32Util.AllocConsole(); } AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); PluginManager = new PluginManager(); String Script = File.ReadAllText(Arguments[0]); string[] args = new string[Arguments.Length - 1]; Array.Copy(Arguments, 1, args, 0, args.Length); Console.WriteLine(); Console.WriteLine("Executing " + Path.GetFileName(Arguments[0]) + "..."); EFEScript.Execute(Script, args); Win32Util.FreeConsole(); //Using this causes scripts to be runned over and over again if opened by double-clicking //But without this, you need to press ENTER before be able to use the cmd again if you run it from there... //SendKeys.SendWait("{ENTER}"); return; } if (mutex.WaitOne(TimeSpan.Zero, true)) { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); PluginManager = new PluginManager(); FileManager = new FileManager(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (Arguments.Length > 0) { Application.Run(new Form1(Arguments[0])); } else { Application.Run(new Form1()); } } else { String arg0 = ""; if (Arguments.Length > 0) { arg0 = Arguments[0]; } foreach (var p in System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName)) { if (p != System.Diagnostics.Process.GetCurrentProcess()) { Win32Util.SendString(/*(IntPtr)Win32Util.HWND_BROADCAST*/ p.MainWindowHandle, arg0); } } } }
public override void OnLoad() { EFEScript.RegisterCommand("MarioKart.MKDS.KCL.Generate", (Action <String, String, Dictionary <String, ushort> >)MarioKart_MKDS_KCL_Generate); }
public override void OnLoad() { EFEScript.RegisterCommand("N3DS.NW4C.GFX.ToOBJ", (Action <String, int, String>)N3DS_NW4C_GFX_ToOBJ); }