Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> узнать смотрит ли юзер видео или слушает аудио, не стоит ли на паузе 
:(
    Опции темы
fakefreak
  Дата 18.6.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



нужно узнать смотрит ли юзер видео или слушает ли аудио. причём именно работает ли, т.е. не стоит ли плеер на паузе. плееры WMP, WMC, winamp, etc.. - думаю, что это не влияет на дело, потому что делать хочу внедрением dll во все процессы через реестр и перехватом вызовов zwreadfile/ntreadfile - если процесс, обратившийся к звуковому или видео файлу имеет название winamp, например, то значит видео воспроизводится.
дельная идея или посоветуете получше?
мне кажется, что гнилая идея, потому что низкоуровневое обращение плеера к файлу может производиться и при паузе. но ничего более дельного придумать не могу.
PM MAIL   Вверх
andrew_121
Дата 18.6.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



fakefreak, Не верный подход. Невозможно определить то, что юзер смотрит фильм или слушает музыку. Это многозадачная ОС !!!
Проще отслеживать процессы по названию. Их не так уж много.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
fakefreak
Дата 18.6.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



список процессов я уже получил успешно, увидел к примеру там винамп, получил у этого процесса список кодеков, чтобы понять чем занят плеер..
но всё это тупиковая ветвь. по кодекам загруженным в процесс ничего точного не скажешь, а просто список запущенных процессов мне тем более никак помочь не может - например агент винампа зачастую загружается при старте системы и висит в трее, но это ничего ещё не значит. паузу плеера при таком подходе тем более никак не понять.
а разве "многозадачная ОС !!!" - это аргумент для "Невозможно определить то, что юзер смотрит фильм или слушает музыку"? мне кажется, что способ должен быть, и не один, проблема только в сложности исполнения и точности предсказания.
PM MAIL   Вверх
andrew_121
Дата 18.6.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



Цитата(fakefreak @  18.6.2009,  23:33 Найти цитируемый пост)
мне кажется, что способ должен быть, и не один, проблема только в сложности исполнения и точности предсказания. 

 smile Успехов!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bugmenot
Дата 19.6.2009, 04:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 3.7.2006

Репутация: 0
Всего: 1



Может лучше перехватывать функции для вывода звука? (хотя это не поможет с видео без звука)
--------------------
доска объявленийвсе о горных велосипедах 
PM MAIL   Вверх
jonie
Дата 19.6.2009, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



WMP имеет API, равно как и винамп.. можно использовать его.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Andrey44
Дата 19.6.2009, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 8
Всего: 26



Еще конечно как вариант можно через загрузку процессора этим процессом. Тупо конечно, но можно.
Когда что-то воспроизводится процессор грузится больше, когда на паузе - загрузки почти нет.
Это просто как вариант. smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
fakefreak
Дата 20.6.2009, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



Цитата(bugmenot @  19.6.2009,  04:37 Найти цитируемый пост)
Может лучше перехватывать функции для вывода звука? (хотя это не поможет с видео без звука) 

хорошая идея. видео без звука бывает редко) то есть также внедрить длл в процессы и перехватывать вызовы функций воспроизведения звука?
есть ещё вопросы по типу того какие же это функции, но я читал в правилах форума, что нельзя больше одного вопроса задавать) надеюсь это не так)

Цитата(jonie @  19.6.2009,  07:25 Найти цитируемый пост)
WMP имеет API, равно как и винамп.. можно использовать его. 

у винампа насколько я знаю всё легко с апи, а вот у вмп например вроде сложнее. имею ввиду сдк. и я не совсем представляю как это работает - расскажите в двух словах?

Это сообщение отредактировал(а) fakefreak - 20.6.2009, 19:11
PM MAIL   Вверх
andrew_121
Дата 20.6.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



Цитата(fakefreak @  20.6.2009,  19:10 Найти цитируемый пост)
я не совсем представляю как это работает - расскажите в двух словах?

Так же как и у винампа, только апи другие.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
fakefreak
Дата 21.6.2009, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



Цитата(andrew_121 @  20.6.2009,  19:44 Найти цитируемый пост)
Так же как и у винампа, только апи другие. 

порылся, скачал сдк к винампу.. в общем я правильно понимаю, что использовать апи винампа это значит написать свою длл, которая бы общалась с винампом через это самое апи? и это называется плагин. если так, то всё понятно и вариант отпадает. если же всё-таки возможно написать своё приложение, общающееся каким-то образом (каким?) с винампом через апи, то возможно сканало бы. но как тогда происходит это общение? - это мне как раз и непонятно было, когда спрашивал:
Цитата(fakefreak @  20.6.2009,  19:10 Найти цитируемый пост)
я не совсем представляю как это работает - расскажите в двух словах?

PM MAIL   Вверх
nix_crash
Дата 21.6.2009, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Цитата(fakefreak @  21.6.2009,  00:54 Найти цитируемый пост)
я правильно понимаю, что использовать апи винампа это значит написать свою длл, которая бы общалась с винампом через это самое апи?

Угу.


Цитата(fakefreak @  21.6.2009,  00:54 Найти цитируемый пост)
и это называется плагин.

Нет.


Смотри СДК. Ищи категорию функций не связанных с плагинами. Что-то вроди СОМ-сервера(или...). Для точности, спроси у виндавз-юзерс. Это в их юрисдикции.

PM MAIL   Вверх
fakefreak
Дата 22.6.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



так.. всё-таки хотелось бы перехватывать вызовы к подсистемам винды. и вариант с перехватом вызовов звуковых функций мне нравится больше, чем функций чтения файлов. надежнее выглядит. но если перехватывать у приложения вызовы к winapi, а оно обращается напрямую к native api, или ещё жёсче - к ядру, то перехват ничего не даст. в связи с этим вопрос, может быть кто знает:
винамп использует winapi для работы со звуком или например native api? то есть на каком уровне он работает со звуком? не удивлюсь, что там низкоуровневое обращение к звуку..
ну и может кто знает то же самое для Windows Media Player
PM MAIL   Вверх
xvr
Дата 22.6.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



90% мультимедийных приложений используют DirectX (точнее DirectShow & DirectSound) для вывода звука. Не уверен, что есть какие либо стандартные методы перехвата таких обращений. Кроме того, звук могут выводить не только плеера, даже голый MessageBox выводит какой то звук при открытии  smile 
PM MAIL   Вверх
fakefreak
Дата 23.6.2009, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2009

Репутация: нет
Всего: нет



Цитата(xvr @  22.6.2009,  17:24 Найти цитируемый пост)
Кроме того, звук могут выводить не только плеера, даже голый MessageBox выводит какой то звук при открытии

ну это не проблема, если встраивать перехватчик, потому что пускай он будет проверять название процесса, в адресном пространстве которого находится,
а вот
Цитата(xvr @  22.6.2009,  17:24 Найти цитируемый пост)
90% мультимедийных приложений используют DirectX (точнее DirectShow & DirectSound) для вывода звука.

прекрасное замечание, я дурак раньше не сообразил. но в целом всё равно с помощью точно такого же перехвата хочу делать.

только вот теперь вопрос: как мне узнать загруженные процессом длл, и главное - как узнать вызываемые процессом функции из этой длл? например из dshow.dll, чтоб выбрать ту которую собственно перехватывать буду.
PM MAIL   Вверх
xvr
Дата 23.6.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(fakefreak @ 23.6.2009,  00:23)
Цитата(xvr @  22.6.2009,  17:24 Найти цитируемый пост)
90% мультимедийных приложений используют DirectX (точнее DirectShow & DirectSound) для вывода звука.

прекрасное замечание, я дурак раньше не сообразил. но в целом всё равно с помощью точно такого же перехвата хочу делать.

DX & DShow работают через COM. Так что перехватывать надо вызовы CoCreateObject с соответствующими UUID
А названия DLL могут меняться

Цитата

только вот теперь вопрос: как мне узнать загруженные процессом длл, 
См Tool Help API
Цитата

и главное - как узнать вызываемые процессом функции из этой длл?
Инжектировать в процесс свою dll и ставить перехватчики на вызовы функций из интересующих dll к своей dll

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1268 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.