Obtener Self Process ID

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola! Hacía tiempo que no comentaba nada por este foro :pc:
Quería preguntar dos cosas:
1. ¿Cómo puedo obtener el Process ID del proceso actual? :fuckyeah-1414023828:
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
HIDE: ON
Hidebb Message Hidden Description
Vamos a ver