Есть три вещи API, которые я думаю, вы должны проверить:
FindFirstChangeNotification () http://msdn.microsoft.com/en-us/library/aa364417%28VS.85%29.aspx
Это дает вам дескриптор, который вы можете подождать и использовать для поиска изменений в файле в определенном файле, каталоге или дереве каталогов. Он не сообщит вам, когда просматривается каталог, но сообщит, когда файл будет сохранен, переименован и т. Д. И т. Д.
SetWindowsHookEx () http://msdn.microsoft.com/en-us/library/ms644990%28v=VS.85%29.aspx
Вы можете настроить его так, чтобы он получал обратный вызов при любом количестве событий - на самом деле я весьма уверен, что вы МОЖЕТЕ получить этот обратный вызов при открытии каталога, но это, вероятно, будет чрезмерно трудным, потому что вы будете перехватывать сообщения в окно исследователя. Таким образом, вы будете перезагружаться во время отладки.
Windows Shells http://msdn.microsoft.com/en-us/library/bb776778%28v=VS.85%29.aspx
Если это не было достаточно болезненно, вы можете попробовать написать программу-оболочку.
Если вы пытаетесь написать руткит, я полагаю, вы не хотите, чтобы я испортил вам детали. Если вы НЕ пытаетесь написать руткит, я советую вам посмотреть его внимательно. Существуют руткиты с открытым исходным кодом, и все они в основном должны отслеживать доступ к файлам таким образом, чтобы скрыть их от пользователя / ОС.