Mi succede una cosa strana:

ho un'applicazione dalla quale lancio un file .bat con la funzione CreateProcess.
codice:
fn:='prova.bat "nomefile"';
CreateProcess(nil,PChar(fn), nil, nil, False,
  NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
in questo modo funziona e il file batch viene lanciato.

Se invece uso il componente TOpenDialog per ottenere "nomefile":
codice:
fn:='prova.bat';
if OpenDialog.Execute then
  fn:=fn+' "'+OpenDialog1.FileName+'"';
CreateProcess(nil,PChar(fn), nil, nil, False,
  NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
così non funziona. il batch non viene lanciato..
e non riesco a capire il perché

Qualche idea?