Пишу небольшое приложение. Одна из функций этого приложения (не самая главная) — это ограничение доступа к определенным файлам. Проблема в том, как это реализовать. Вначале в голову пришла мысль написать небольшое отдельное приложение, которое автоматически бы запускалось при старте Windows; оно бы открывало необходимые файлы с флагом доступа 0 (то есть без FILE_SHARE_READ и FILE_SHARE_WRITE), и держало бы хэндлы этих файлов открытыми до завершения работы Windows. Минус: слишком просто убить этот сервис через Task Manager, таким образом получив доступ к файлам.
Другая идея, которая пришла мне в голову — это написать Shell extension, которое бы работало аналогичным образом. Только, насколько я знаю, Windows Shell подключает эти расширения по мере необходимости (то есть, если я напишу Context menu extension, то Explorer не загрузит мою DLL до тех пор, пока пользователь не вызовет контекстное меню).
Хотелось бы узнать, кто что думает по этому поводу, и как еще можно решить эту задачу. Спасибо.