Prueba a cambiar la función ejecutarProceso por esta (he cambiado los 2 primeros parámetros):
Código Delphi
[-]
function ejecutarProceso (nombreProceso : string) : Cardinal;
var
infoInicio : TStartupInfo;
infoProceso : TProcessInformation;
begin
Result := 0;
FillChar (infoInicio, SizeOf(infoInicio), 0);
infoInicio.cb := SizeOf(infoInicio);
if CreateProcess(nil, PChar(nombreProceso),
nil, nil, false, 0, nil, nil,
infoInicio, infoProceso) then
Result := infoProceso.hProcess;
end;
Y ahora en la llamada pásale no sólo el nombre del EXE, sinó el EXE más el fichero a reproducir; Algo así:
Código Delphi
[-]
NumProceso:=ejecutarProceso('C:\Program Files (x86)\KaraFun\KaraFun.exe C:\Program Files (x86)\KaraFun\pista1.cdg');
Ya dirás...