Es gibt zwar unter bestimmten Umständen funktionierende Tricks, wie etwas das Umbenennen der Datei vor dem Löschen, aber die sind eben meist an bestimmte Umstände gebunden.
Den Verursacher finden ist da die sicherere Variante... an der Kommandozeile tu ich sowas zwischen gerne mit
handle und pskill von SysInternals... in einem Delphi-Programm findest Du viel des Benötigten in den Units TlHelp32 und PsApi (bin mir nicht sicher ob alles, zur not gibts umfassendere Jwa-Units).