Ribadisco, se il tuo scopo è aprire i files, usando ShellExecute risolvi al 100%, perché individua automaticamente con che programma deve aprire il file, senza fare strane chiamate a FindExecutable e simili. In sostanza, è come fare doppio click sul file che gli passi come parametro.