Que tal Neftali.
Modifiqué el código y no reprodujo el archivo, el cual lo toma de un ListView, donde esta todo la ruta del archivo, se lo agregue como parámetro a la funcion "ejecutarProceso", como tu lo indicaste y no funciono....talvez la forma en como se lo paso, es decir tendrá algo que ver que lo tome de un listview?
Saludos.
Código Delphi
[-]procedure TForm1.btnReproducirClick(Sender: TObject);
var
St : array[0..255] of char;
NumProceso:Cardinal;
begin
With lvLista do
begin
i:=0;
While i < Items.Count do
begin
if lvLista.Items[i].Checked then
begin
Application.Minimize;
NumProceso:=ejecutarProceso('C:\Program Files (x86)\KaraFun\KaraFun.exe '+Items.Item[i].SubItems.Strings[1]);
if NumProceso<>0 then
WaitForSingleObject(numProceso,INFINITE);
Application.Restore;
end;
inc(i);
end;
end;
end;
Y la función quedó como tu la escribiste.