| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Процесс, который модифицировал файл |
| Автор: UserOK 16.6.2017, 10:44 |
| Здравствуйте. Сегодня появился такой вопрос: как найти процесс, который изменил содержимое файла. Допустим, есть файл C:\file.txt. То, что он изменился, нетрудно понять по FileLen, но необходимо выяснить, что именно (какой запущенный процесс) поменял его содержимое. Просьба привести наглядный пример. Заранее спасибо. |
| Автор: Akina 16.6.2017, 12:37 |
| Включите файловый аудит на изменение - только тогда получите эти данные. |
| Автор: UserOK 16.6.2017, 14:43 | ||
Хорошо, давайте уточню вопрос. Как на Vb6 узнать, какой процесс в настоящее время получает доступ к файлу (конкретно - записывает данные)? Т. е. действие аналогично Unlocker'у - проверить, каким сторонним процессом занят файл (какое приложение использует файл) |
| Автор: Akina 16.6.2017, 15:21 |
| Способ есть, но я его знаю только описательно. Есть некая недокументированная функция в ntdll.dll, которая позволяет получить доступ к таблице всех хэндлов системы. Из неё можно отобрать хэндлы интересующего тебя файла и получить пиды процессов, по которым узнать их имена. Исходного кода на VB - не видел. Можешь попробовать найти что-то на С++ на форумах программистов-системщиков. Поскольку функция (и используемые ей структуры) была чисто "для внутреннего употребления", то точно могу сказать, что она поддержана в хрюшке и НЕ поддержана в восьмёрке - там придётся искать, что с ней сделали и чем заменили. Насчёт семёрки не знаю. |