Текущее время: 01 май 2025, 15:36 • Часовой пояс: UTC + 3 часа |
Поиск окон ПО v5.17+
 |  |
Страница 1 из 1 |
[ Сообщений: 7 ] |
|
Автор | Сообщение |
hd44780
|
|
Эксперт |  |
Зарегистрирован: 23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк
|
Команда HWND hBhWnd = FindWindow ("TMain", "BeholdTV");
находит ПО, но какое?
Если у меня их 2, как мне понять которое из них я нашел? Каким тюнером я буду рулить?
Вот запустил 2 экземпляра.
Наклепал программку поиска окна (могу положить исходник на C#, .NET2.0).
Нашел:
Window found
Window Name: 'Behold TV - Channel 41 (591,25 МГц)'
Parsing ...
Информация: 'Channel 41 (591,25 МГц)'
Канал: 'Channel 41'
Частота (строка), МГц/DVB transponder: 591,25 МГц
Частота, Гц: 591250000
Это у меня 609 тюнер. А X7 нема  ....
Прошелся утилитой Spy++, нашел окна типа "BeholdTV.Inst0", но как-то некошерно искать их прямым перебором. Да и ненадежно это. Мало ли какой хлам, не относящийся к ПО Behold я так найду...
Спасибо.
Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Последний раз редактировалось hd44780 13 фев 2011, 11:25, всего редактировалось 1 раз.
|
|
|
EugeneF
|
Добавлено: 12 фев 2011, 14:01. Заголовок сообщения: |
|
|
Зарегистрирован: 16 апр 2008, 22:22 Сообщения: 611
|
Ну по идее, рулить надо активным тюнером. Вы же не собираетесь два одновременно смотреть или слушать...  А запись параллельно вести из трея, если надо.
Хотя конечно да, в название окна тоже не помешало бы вставить профиль или название тюнера...
|
|
|
hd44780
|
Добавлено: 13 фев 2011, 11:29. Заголовок сообщения: |
|
|
Эксперт |  |
Зарегистрирован: 23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк
|
EugeneF писал(а): Ну по идее, рулить надо активным тюнером.
Все равно непонятно, которым?
FindWindow всегда находит только одно окно.
Я могу поисследовать набор окон в винде, насочинять какой-то алгоритм (искать окна "BeholdTV.Inst0", но те ли это окна?), м.б. он будет как-то работать, но хотелось бы услышать рекомендации разработчиков ПО.
Ведь тот же Агент как-то их различает? Или просто запускает с ключом -inst и все?
Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
|
|
|
EugeneF
|
Добавлено: 13 фев 2011, 13:25. Заголовок сообщения: |
|
|
Зарегистрирован: 16 апр 2008, 22:22 Сообщения: 611
|
Скрее всего именно FindWindow ("TMain", "BeholdTV.inst0") это оно и есть. Поскольку это окно панели, которое в дефолтном инстансе называется просто BeholdTV. Т.е., раньше именно ему и посылали.
А активное окно действительно искать сложно, поскольку активным может быть либо панель, либо экран, в зависимости от режима...
|
|
|
hd44780
|
Добавлено: 14 фев 2011, 10:45. Заголовок сообщения: |
|
|
Эксперт |  |
Зарегистрирован: 23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк
|
Угу  .
Ни фига не понять ...
Активное окно - оно ж сейчас одно, через секунду пользователь поменял, оно уже другое. Но хэндлы ж от этого не меняются, они одинаковые в течение всего времени жизни приложения.
Я прямым перебором в плагине могу найти окна:
BeholdTV
BeholdTV.inst0
BeholdTV.inst1
..............
Но в котором из них работает плагин?
Тут по-моему надо какое-то расширенное API.
Или по аргументу HINSTANCE hModule в DllMain как-то искать окна, принадлежащие приложению. И среди них уже с текстом "BeholdTV.inst1".
Надо об этом подумать. Раньше как-то не сталкивался.
Хотя где-то читал, что HINSTANCE у всех одинаковый.... На фига он тогда нужен?
Разработчики, Ау-у...
Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
|
|
|
Support
|
Добавлено: 14 фев 2011, 13:47. Заголовок сообщения: |
|
|
Beholder |  |
Зарегистрирован: 19 авг 2004, 11:45 Сообщения: 616
|
Узнать инстанс приложения можно, проанализировав ключи командной строки, которую возвращает, например, ф-я GetCommandLine().
Названия окон инстансов приложения:
Окно "TMain" - "BeholdTV.InstX"
Окно "TVideoFrame" - "Video window.InstX"
где X - номер инстанса.
Пока так. В новом расширенном API будут отдельные вызовы для получения номера инстанса, хендлов окон приложения и пр. полезной информации.
|
|
|
hd44780
|
Добавлено: 14 фев 2011, 14:07. Заголовок сообщения: |
|
|
Эксперт |  |
Зарегистрирован: 23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк
|
Support, спасибо. Попробую.
С нетерпением жду нового API.
Хотя и старое придется поддерживать для обратной совместимости с предыдущими версиями  ....
Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
|
|
|
 |  |
Страница 1 из 1 |
[ Сообщений: 7 ] |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|