Навскидку нашел только вариант через ShellExtention, что, судя по описанию задачи, тебя не очень устроит. Но вообще, почитай
тут, может еще чего вычитаешь.
Как дополнительный вариант, можно сделать программу, которая будет выставлять в системе какой-нить контейнер, как виртуальный диск. Ну как виртуалки. Т.е. у тебя один зашифрованный файл. Запускаешь программу, она регистрирует этот файл как диск и дает доступ к файлам внутри этого контейнера. Там ты, фактически, можешь контролировать практически все.