C # cierra JMP después de ejecutarEstoy intentando lanzar un complemento (además de algunas otras cosas) con un programa simple de C #.
Funciona muy bien, el problema es ser. Si JMP aún no está abierto, tan pronto como termine de ejecutarse, JMP sale. Realmente no quiero mantener la consola abierta si no tengo que hacerlo. ¿Hay un comando que simplemente lo dejará abierto después de la ejecución?
Re: C # cierra JMP después de ejecutarSi usa "EnableInteractiveMode (True)" en el objeto de la aplicación, esto habilitará el elemento del menú Salir y no tendrá que detener el proceso a través del Administrador de tareas.
Brian Corcoran
Desarrollo JMP
Re: C # cierra JMP después de ejecutarHice algunas pruebas más y parece que el comportamiento es diferente si está utilizando una aplicación Windows Forms en lugar de una consola. Supongo que está utilizando una aplicación de consola basada en su OP. Mi publicación anterior se basó en el uso de una aplicación de Windows Forms.
Si tiene una aplicación de consola, hacer algo como myJMP.ShowStartupWindow () debería evitar que JMP se cierre cuando el programa termine de ejecutarse.
Este método abrirá JMP y lo mantendrá abierto después de que el programa termine de ejecutarse.
static void Main(string[] args)
{
JMP.Application myJMP;
myJMP = new JMP.Application();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
}
Sin embargo, hay un problema con este método. Deberá matar el jmp.exe en el Administrador de tareas porque el elemento del menú Salir de JMP está deshabilitado. (En realidad, el código anterior que proporcioné también tiene este problema).

EDITAR 09MAR17 (Para las personas del futuro):
Me he dado cuenta de que mi comentario original (arriba o abajo, dependiendo de dónde esté leyendo esto) fue correcto y la información en esta publicación anterior esta edición no funciona todo el tiempo. A continuación hay una solución que se me ocurrió que crea una tabla ficticia y la cierra para que JMP permanezca abierta. También he añadido @briancorcoran La sugerencia de usar myJMP.EnableInteractiveMode (true) para habilitar el elemento de menú 'Salir de JMP'.
static void Main(string[] args)
{
JMP.Application myJMP;
myJMP = new JMP.Application();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
myJMP.EnableInteractiveMode(true);
// Needed to keep JMP from automatically closing
JMP.DataTable dt = myJMP.NewDataTable("test");
myJMP.RunCommand(@Close(Data Table("test""), NoSave)");
}
@vince_faller Para tu información
Re: C # cierra JMP después de ejecutarBueno saber. ¿Puedo simplemente darle una varita ficticia?
Re: C # cierra JMP después de ejecutarJMP se cerrará si no tiene una referencia a nada además de la aplicación JMP.
En el siguiente ejemplo, JMP permanecerá abierto porque tengo una referencia a una tabla de datos JMP.
JMP.Application myJMP;
JMP.DataTable dt;
myJMP = new JMP.Application();
myJMP.Activate();
myJMP.Visible = true;
myJMP.ShowStartupWindow();
myJMP.RunCommand(@Open("$SAMPLE_DATA\Big Class.jmp"")");
dt = myJMP.GetTableHandleFromIndex(1);
Re: C # cierra JMP después de ejecutarAcabo de probar el ejemplo de automatización de C # en JMP 13; dejó a JMP ejecutándose después de que cerré el ejemplo y el IDE.
Abra la aplicación C #, luego presione el botón para automatizar JMP
Cierra la aplicación C #, JMP permanece abierto.
Supongo que esta es una prueba de existencia de que puedes hacer lo que estás pidiendo, pero no estoy seguro de qué es lo que hace que funcione. Me encontré con un comentario sobre la liberación de interfaces http://stackoverflow.com/questions/18154315/excel-process-not-closing Para alguien que quería el comportamiento opuesto.