Hola de nuevo Jafera.
No es necesario que pongas el código, ya ví donde está el problema.
El procedimiento llama a FileOpen para obtener el Handle:
Código Delphi
[-]
Hnd := FileOpen(Nombre, 0);
E intenta abrir un archivo (el que se está ejecutando) que yá está abierto. ( Perdón por la obviedad...
)
Así que no te va a servir para obtener el handle de la aplicación que está en ejecución.
Voy a investigar un poco a ver si se puede tomar algún atajo...
Si logro algo te comento.
Saludos.