У меня есть приложение-служба Windows на Vista SP1, и я обнаружил, что пользователи переименовывают его исполняемый файл (пока он работает), а затем перезагружаются, в результате чего он не запускается при следующей загрузке, поскольку диспетчер служб больше не может найти exe-файл, так как он был переименован.
Кажется, я помню, что в старых версиях Windows вы не могли этого сделать, потому что ОС установила блокировку файла. Даже с Vista SP1 я все еще не могу скопировать существующий файл во время его работы - Windows сообщает, что файл используется - имеет смысл. Так почему мне следует разрешить переименовать его? Что произойдет, если Windows потребуется страница в новой кодовой странице из exe, но файл был переименован с момента его запуска? Я запустил Process Monitor при переименовании exe-файла и т. Д., Но Process Mon не сообщил ничего странного и просто зарегистрировал изменение имени файла, как и любой другой файл.
Кто-нибудь знает, что здесь происходит за кулисами? Кажется нелогичным, что Windows позволит изменить имя файла запущенного процесса (или его зависимые библиотеки DLL). Что мне здесь не хватает?