[Script] Ejecutar solo 1 instancia

Todas los scripts relacionados con AMS.
Primero el código (2 opciones) que ira en "On Startup":
--Opción 1
local tP = System.EnumerateProcesses();
if tP then
	local tIns = 0;
	for handle, path in pairs(tP) do
		if path == _SourceFolder.."\\".._SourceFilename then
			tIns = tIns + 1
		end
	end
	if tIns > 1 then
		Dialog.Message("Error", "Application already running");
		os.exit();
	end
end
--Opción 2
local tP = Window.EnumerateProcesses();
if tP then
	local tIns = 1;------## Nótese el cambio
	for handle, path in pairs(tP) do
		if path == _SourceFolder.."\\".._SourceFilename then
			tIns = tIns + 1
		end
	end
	if tIns > 1 then
		Dialog.Message("Error", "Application already running");
		os.exit();
	end
end
Un error que tenía una amigo era usar la función Window.EnumerateProcesses en el evento "On Startup" pero la variable "tIns" la colocaba con valor de 0 (tal como viene en el archivo de ayuda). El error esta en que dicha función sólo retorna aquellos procesos que ya habían generado una ventana, pero el código que esta en "On startup" se ejecuta antes de crear la ventana (ahi el error).

Por otro lado, la función System.EnumerateProcesses si encontrará todos los ejecutables corriendo aún sin ventana.

Por cierto, en éste caso he decidido usar os.exit() en lugar de Application.Exit() para evitar que se genere un efecto de flasheo de la ventana principal apareciendo y cerrándose.
Pregunta del novato:

Donde encuentro el "on StartUP"
:cerrado:
Excelente, la primera opción funciona a la perfección. :rofl: Gracias!