Generell würde ich Software IMMER als
MSI verteilen.
Unabhängig davon, kannst du CreateFile auch Parameter mitgeben, welche eine Datei automatisch löschen, wenn alle Dateizeiger drauf geschlossen wurden.
"FILE_FLAG_DELETE_ON_CLOSE"
Also Ausführungsprogramm ins %temp% kopieren mit CreateFile(mit FILE_FLAG_DELETE_ON_CLOSE), dann Starten und dann ursprüngliches Programm beenden.