Winamp QIP 2005 x-status plugin

Вторник, 11. Сентябрь 2012
Раздел: Assembler, Windows, Софт, автор: dx

Наконец-то доделал плагин для популярного плеера Winamp, который был мною задуман еще несколько лет назад. Этот плагин позволяет устанавливать в вашем QIP Classic (2005) статус в зависимости от той композиции, которую вы прослушиваете в Winamp'е. Наверняка, уже достаточно малое количество людей используют этот ICQ-клиент, тем не менее, такие люди еще остались.

С момента создания в плагине имелась довольно неприятная ошибка, точнее, недоработка, которую мне лень было исправлять, поэтому он и лежал так долго без дела. А как известно, QIP 2005 в принципе не имел никакой системы (SDK) для создания плагинов, поэтому приходилось играться с оконными сообщениями (Kaimi предлагал читать и исполнять память процесса, но это еще хардкорнее). Однако, ошибка была исправлена, я добавил пару новых полезных функций, и теперь плагин полностью работоспособен. Выкладываю его вместе с исходниками на MASM32 (без комментариев, но если кому-то будет интересно...): Winamp QIP Classic X-Status Plugin

Ставится плагин так: распаковываем архив и копируем файл gen_qip.dll в папку плагинов Winamp (например, C:\Program Files\Winamp\Plugins), после чего перезапускаем Winamp, идем в настройки (Ctrl+P), заходим в пункт плагинов Plug-ins - General Purpose и видим там в списке плагинов имя QIP-плагина. Двойной клик на имени откроет окно настроек (как выше на скриншоте).

Если кому-то интересны детали работы и то, в чем была проблема...

Плагин:
1. Ищет главное окно программы QIP 2005 с указанным номером ICQ (даже если оно скрыто, оно всегда есть).
2. Ищет окно выставления X-статуса. Оно есть с того момента, как пользователь его хоть раз открыл.
3. Ищет в окне X-статусов все контролы (текстовые поля, выпадающий список и кнопку применения статуса)
4. Использует найденные хендлы для выстановки статуса.
5. Если окно X-статусов или какие-либо контролы на нем не найдены, его надо открыть. Для этого плагин ищет нижнюю панель с кнопками в главном окне QIP и нажимает в ней кнопку открытия этого окна (у кнопки HWND нет, поэтому шлется клик мышкой), после чего окно сразу скрывается. Если панель скрыли, она все равно есть. Однако, если панели нет с запуска программы ("компактный" интерфейс), то и панели не будет.
6. Если панели нет, необходимо на какое-то время открыть обычный интерфейс, затем снова переключив его на компактный. Проще всего это делается с помощью отсылки двойного клика мышкой к верхней панели главного окна QIP'а. Она есть всегда.
7. Перед отсылкой двойного клика необходимо открыть окно QIP'а, если оно было скрыто, иначе он не сработает - панели не появятся. Но и тут есть сложность: простой вызов ShowWindow не прокатит, потому что окно-то отобразится, а вот QIP будет считать, что оно скрыто, и двойной клик не приведет к открытию верхней и нижней панелей. Поэтому используется недокументированное внутреннее сообщение "клик мышкой по иконке QIP в трейбаре" для открытия окна.

Таким образом, в худшем случае при прослушивании в Winamp'е самой первой композиции с момента запуска QIP'а он доли секунды помелькает окошками. При прослушивании последующих композиций этого уже происходить не будет.

Также рекомендую почитать

 Обсудить на форуме


Источник: http://feedproxy.google.com/~r/kaimi/dev/~3/BW9ZZ1P4CSk/

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Winamp QIP 2005 x-status plugin | | 2012-09-11 20:18:00 | | Блоги и всяко-разно | | Вторник, 11. Сентябрь 2012 Раздел: Assembler, Windows, Софт, автор: dx Наконец-то доделал плагин для популярного плеера Winamp, который был мною задуман еще несколько лет назад. Этот плагин позволяет | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: