Versuch es mal probehalber mit einer 0, statt dem Application.Handle.
So kommt auch die Windowsmeldung. Vielleicht sollte ich mal TMS auf den letzten Stand bringen?
ShellExecuteAndWait(0, 'open', PChar('notepad.exe'), PChar(fname), Nil, SW_SHOW, True);