powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посоветуйте идею с отлавливанием процессов, открывших файлы
12 сообщений из 12, страница 1 из 1
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706332
IAmAllan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, предложите идею, плиз.
Для себя написал программку, смысл в том, что начал смотреть какой-то сериал, потом отвлёкся на пару недель/месяцев, потом хочется продолжить с того же места.
Т.е. мы висим в фоне и смотрим, какие плейеры что открыли, запоминаем, а дальше понятно.
Но плейеры не держат файлы всё время открытыми, они подчитывают оттуда сколько им надо, а потом закрывают. Я могу получить список открытых файлов на данный момент, но это надо вообще постоянно смотреть за всеми, а хочется проснуться раз в десять минут (чаще не нужно, значит, ты не смотрел, а просматривал), посмотреть, что как, запомнить и заснуть.
Сейчас для себя я ловлю конкретно MPC HC, которому сказал в заголовке ставить полный путь файла, ищу окно, смотрю заголовок, всё работает, но может всё же есть какой-то общий вариант?
Кому интересно - программку хоть телом, хоть в исходниках отдам:)
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706360
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужно всего то скачать плеер, который по умолчанию это поддерживает...

Эх.
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706388
IAmAllan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гирлионайльдо,
да так-то каждый может!)
(а что за плейер?;))
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706401
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IAmAllan(а что за плейер?;))

MPC-HC, например.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706446
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IAmAllan(а что за плейер?;))
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706462
IAmAllan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гирлионайльдо,

Не, ну так не интересно! Хочется же самому что-то сделать, а с ним-то и так всё хорошо)
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706463
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IAmAllan,

Возьми какую нибудь оболочку работы с видео, и построй свой плеер. Если хочется сделать своё неведомое.
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706479
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IAmAllanНе, ну так не интересно!

Создавать самому себе трудности чтобы героически их преодолевать? Не мелочись: сломай себе
правую руку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706492
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry SibiryakovIAmAllanНе, ну так не интересно!

Создавать самому себе трудности чтобы героически их преодолевать? Не мелочись: сломай себе
правую руку.

ТС, не слушай этих старых пердунов, которым ничего уже в жизни неинтересно
https://www.codeproject.com/Articles/30537/Windows-File-Monitoring-System-Using-Windows-API-H
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706494
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
автор1) Внедриться в оболочку (explorer.exe), "легально", через какой-нибудь shell extension, или
"грязно", через инжект или оконный хук, и поставить перехватчик на CreateFile.

Плюсы: максимально простой способ, можно обойтись только функциями Win32 API, без
недокументированных возможностей, native api или использования драйверов.

Минусы: будут перехватываться только открытия файлов из Проводника.

2) Внедриться в оболочку и перехватить не только CreateFile, но и CreateProcess, после чего
появится определенный контроль над приложениями, запускаемыми пользователем (так как все они
так или иначе "наследуются" от explorer.exe). В каждом запускаемом приложении снова патчится
CreateFile и CreateProcess и так далее, на произвольную глубину запусков. То есть, перехватчик
CreateFile отслеживает открытие файла пользователем, а перехватчик CreateProcess распостраняет
эту "заразу" на дочерние процессы. По такому принципу, кстати, работают некоторые программы
скрытия файлов и папок.

Плюсы: большее, по сравнению с предыдущим способом, покрытие.

Минусы: написать качественный API-перехватчик довольно сложно (патч таблицы импорта не
универсален, а сплайсинг требует дизассемблера длин инструкций, хотя в данном случае
это решаемо, так как перехватываются лишь две функции), способ не будет работать для
служб и других процессов, запускаемых не проводником. Например, для COM-серверов в exe.
Также возможны различные конфликты с системой безопасности Windows и со сторонним софтом.
А еще существуют процессы, защищенные протекторами, где поставить перехват API-функций
довольно затруднительно, а также всякие виртуальные машины...

3) Установить глобальный перехват на CreateFile, для всех запускаемых процессов.
Еще более универсальный, но вместе с тем и более сложный способ. Основная трудность здесь именно в
отслеживании запуска новых процессов и установке в них перехватчика. Напомню, что AppInit_DLLs на
Windows 7 и выше по умолчанию отключен, к тому же dll аттачится только к GUI-процессам, запущенным
на сопостовимом с explorer.exe уровнем целостности, так что оконные хуки — очень ограниченный в
данном случае вариант. Вырисовывается схема с привелегированным процессом (LocalSystem ?), который
бы отслеживал запуск новых процессов (как ?) и патчил бы в них точку входа в CreateFile.

Плюсы: покрытие, близкое к максимальному.

Минусы: к минусам, описанным в предыдущем пункте, добавляется сложность отслеживания запуска
новых процессов из user mode.

4) Пропатчить NtCreateFile в таблице системных сервисов (SSDT hook).
Вариация предыдущего способа. Технически сопоставим по сложности.

Плюсы: не требует возни со сплайсингом/патчингом таблиц импорта, очень высокое покрытие.

Минусы: требует написания драйвера, не работает на 64-битных версиях Windows, требует знания индекса
NtCreateFile в таблице системных сервисов, который от версии к версии меняется, возможны конфликты со
сторонним софтом, которые приводят уже не просто к падению приложения, а к "синему экрану".

5) Фильтр файловой системы.
Наиболее универсальный и мощный способ. За основу берется сэмпл sfilter из WDK.

Плюсы: стопроцентное покрытие. Перехватываются открытия файлов на любых дисках, включая
съемные и виртуальные диски, сетевые шары и т.п.

Минусы: относительно высокая сложность реализации, необходимость цифровой подписи для
запуска драйвера на 64-битных версиях Windows от Vista и выше.

отсюда
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39706804
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если хочется непременно самому, то опция "запоминать позицию" в плеере + мониторить конфиг. При сильном хотении странного - можно мониторить запуск плеера и подставлять позиции в конфиг, если они были вытеснены более поздними просмотрами.
...
Рейтинг: 0 / 0
Посоветуйте идею с отлавливанием процессов, открывших файлы
    #39707268
IAmAllan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,
Хм, интересно, спасибо, надо подёргать.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Посоветуйте идею с отлавливанием процессов, открывших файлы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]