Hola! Hacía tiempo que no comentaba nada por este foro 
Quería preguntar dos cosas:
1. ¿Cómo puedo obtener el Process ID del proceso actual?
2. ¿Cómo puedo obtener el Process ID de un proceso ejecutado desde File.Run?
Mi solución hasta el momento ha sido iterar sobre System.EnumerateProcesses() buscando el SourceFilename, pero si hay múltiples procesos ejecutándose esto no es útil. ¿Alguna sugerencia? Esta fue mi pseudosolución:

Quería preguntar dos cosas:
1. ¿Cómo puedo obtener el Process ID del proceso actual?

2. ¿Cómo puedo obtener el Process ID de un proceso ejecutado desde File.Run?
Mi solución hasta el momento ha sido iterar sobre System.EnumerateProcesses() buscando el SourceFilename, pero si hay múltiples procesos ejecutándose esto no es útil. ¿Alguna sugerencia? Esta fue mi pseudosolución:
function getSelfPID()
local pids = {}
local processes = System.EnumerateProcesses()
for pid, path in pairs(processes) do
if path == _SourceFolder..'\\'.._SourceFilename then
pids[#pids+1] = pid
end
end
if #pids > 1 then
error('Múltiples instancias se están ejecutando')
end
return pids[1]
end