Привет всем, Нужно удалять файл, который используется другим процессом, т.е. число открытых хендлов на который больше 0. DeleteFile() возвращает: Подскажите в какую сторону смотреть?
причем удалять файл нужно из процесса, который это файл залочил. Я в этот процесс делаю иньекцию моей длл, и из длл нужно удалить файл, который был открыт этим процессом. У меня даже хендл файла есть, только вот CloseHandle возвращает: Подскажите что делать?
Направление сказали. Наверное надо еще и отнести http://www.wasm.ru/article.php?article=lockfileswork
а почему он тогда возвращает ERROR_ACCESS_DENIED если процесс то онин и тот же, или как? к стате как UnLocker работает, у него вроде дров или нет?
А почему никто не упоминает, что если даже и удастся удалить занятый файл, то приложение его открывшее, с вероятностью почти 100% с треском рухнет. Не проще ли сразу убить приложение и спокойно удалить нужный (или ненужный файл) ?
Это значит, что тот, кто писал приложение, не сделал обработки ошибок. Обычно никто не падает, когда UnLocker ом что либо закрываешь.
Partner не упадёт, например если удаляешь фильм который сейчас проигрывает проигрыватель то воспроизведение просто остановится, и т д и т п.
Partner Та не... зависит от приложения. Подозреваю от того, на сколько интенсивно оно юзает память. Была уже тема такая жж. Калькулятор в пример приводили. Чё ему падать то...
2FEDAspire Согласен, насчет 100% погорячился. Встречаются приложения, с грамотной обработкой ошибок. Но их не так уж много.
Нужно отличать удаление запущеного екзешника и удаление файла, открытого приложением. В первом случее рано или поздно часть памяти процесса окажется в свопе. При попытке подгрузиться с удаленного файла рухнет не только приложение, но и вся система. Во втором случае проблема будет при записи в удаленный файл и, возможно, при CloseHandle.