|
|
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
Привет, предложите идею, плиз. Для себя написал программку, смысл в том, что начал смотреть какой-то сериал, потом отвлёкся на пару недель/месяцев, потом хочется продолжить с того же места. Т.е. мы висим в фоне и смотрим, какие плейеры что открыли, запоминаем, а дальше понятно. Но плейеры не держат файлы всё время открытыми, они подчитывают оттуда сколько им надо, а потом закрывают. Я могу получить список открытых файлов на данный момент, но это надо вообще постоянно смотреть за всеми, а хочется проснуться раз в десять минут (чаще не нужно, значит, ты не смотрел, а просматривал), посмотреть, что как, запомнить и заснуть. Сейчас для себя я ловлю конкретно MPC HC, которому сказал в заголовке ставить полный путь файла, ищу окно, смотрю заголовок, всё работает, но может всё же есть какой-то общий вариант? Кому интересно - программку хоть телом, хоть в исходниках отдам:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 23:28 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
А нужно всего то скачать плеер, который по умолчанию это поддерживает... Эх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 00:23 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
Гирлионайльдо, да так-то каждый может!) (а что за плейер?;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 10:21 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
IAmAllan(а что за плейер?;)) MPC-HC, например. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 12:22 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
IAmAllan(а что за плейер?;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 19:41 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
Гирлионайльдо, Не, ну так не интересно! Хочется же самому что-то сделать, а с ним-то и так всё хорошо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 21:48 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
IAmAllan, Возьми какую нибудь оболочку работы с видео, и построй свой плеер. Если хочется сделать своё неведомое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 22:03 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
IAmAllanНе, ну так не интересно! Создавать самому себе трудности чтобы героически их преодолевать? Не мелочись: сломай себе правую руку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2018, 23:05 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovIAmAllanНе, ну так не интересно! Создавать самому себе трудности чтобы героически их преодолевать? Не мелочись: сломай себе правую руку. ТС, не слушай этих старых пердунов, которым ничего уже в жизни неинтересно https://www.codeproject.com/Articles/30537/Windows-File-Monitoring-System-Using-Windows-API-H ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2018, 08:59 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
автор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 и выше. отсюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2018, 09:11 |
|
||
|
Посоветуйте идею с отлавливанием процессов, открывших файлы
|
|||
|---|---|---|---|
|
#18+
Ну если хочется непременно самому, то опция "запоминать позицию" в плеере + мониторить конфиг. При сильном хотении странного - можно мониторить запуск плеера и подставлять позиции в конфиг, если они были вытеснены более поздними просмотрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 10:13 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39706463&tid=2040377]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
213ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 551ms |

| 0 / 0 |
