Ich habe mal ein wenig analysiert. Die o.g. Fehlermeldung stammt nicht aus dem Programm selber, sondern muss aus irgend eine Windowslibrary kommen (was man auch an der hölzernen Sprache merkt).
Meine Vermutung: MS hat zwischen XP und W7 Änderungen an der API (WIndows Programmierschnittstelle) durchgeführt. So was kenne ich aus der Zeit, als ich noch selber Windows-Systemprogrammierung betrieben habe. Da wurde dann schon mal bei einer Funktion ein Parameter hinzugefügt oder weggenommen odgl.
Mit entsprechend eingeschränkter Kompatibilität.
Ich interpretiere die Fehlermeldung so, dass die Datei nicht umbenannt werden kann, weil sie noch als "geöffnet" markiert ist. Unter Windows XP war die Datei entweder automatisch "geschlossen", oder es war ein Bug und wurde ignoriert, und unter W7 wird das anders behandelt. Oder es gab Änderungen in der Dateisystemverarbeitung (NTFS), die da ein anderes Verhalten hervorrufen. Das könnte man testen, indem man das Programm auf einem FAT Dateisystem laufen lässt.
Schließlich könnte es auch ein Zeitverhalten sein. Es sieht so aus, als ob immer derselbe Name für die temporäre Datei verwendet wird. In dem Fall könnte es sein, dass in einer Multi-Threaded-Umgebung schon die nächste Datei bearbeitet werden soll, während die erste noch nicht fertig ist. Das könnte erklären, warum es manchmal funktioniert.
@Frank-2 : wie sehen bei dir die Einstellungen in diesem Fenster aus: