Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - [решено] Управление Winamp из VB

Ответить
Настройки темы
Win32 API - [решено] Управление Winamp из VB

Аватара для Vovchick1

Старожил


Сообщения: 309
Благодарности: 38


Конфигурация

Профиль | Отправить PM | Цитировать


Вообщем есть клавиатура с мультимидийными клавишами (PLAY_PAUSE, STOP, PREV_TRACK, NEXT_TRACK), и Winamp v2.76, предполагается использовать данные клавиши для управления Winamp(ом). Программу я впринципе написал, и она вполне нормально функционирует, только есть одна проблемка, на клавиатуре PLAY и PAUSE висят на одной клавише, а в Winamp они разделены. Изтого что я нашёл в инете следует что можно с помощью конструкции скажем “W=SendMessage( FhWnd, WM_USER, 0, 104)” узнать текущее состаяние плеера “W=1” играет, ”W=3”пауза. Но у меня данная функция всегда возвращает 1. Ни кто не сталкивался с чем-то подобным может ответ я должен забирать с помощью какой-нибудь другой функции. Заранее благодарен всем!!!

Отправлено: 13:53, 18-04-2009

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Vovchick1,
а если пойти не по пути программирования...
ставить Винамп более новой версии, оставлять её со встроенным глобальным хуком клавиш идущим в Winamp Agent, или оставив последнюю заменить исполняемый файл и зависимые библиотеке из директории с установленным v2.76
Впрочем если используется версия 2.76, вариант с установкой новой версии врятле интересен.

VB get Winamp status? ответы получают как раз с помощью данной функции. Используют 5ю версию.
Я проверил на 5.5 - текущее состояние определяет корректно, на версии 2.76 не проверял.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 21-04-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Vovchick1

Старожил


Сообщения: 309
Благодарности: 38

Профиль | Отправить PM | Цитировать


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

Цитата:
Впрочем если используется версия 2.76, вариант с установкой новой версии врятле интересен.
Это точно, мне Winamp нужен исключительно для музыки, а начиная кажется с 3го он начал ещё и видео брать, короче некатит

Последний раз редактировалось Vovchick1, 21-04-2009 в 17:13.


Отправлено: 16:49, 21-04-2009 | #3


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Vovchick1 конечно.
Основан на коде из поста от QOAL по ссылке выше из предыдущего поста.
Код: Выделить весь код
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Const WM_USER = &H400
Const WA_GETSTATUS = 104
Dim hWndWinAMP As Long
Function WinAMP_GetStatus() As String
    Dim Status As Long
    
    Status = SendMessage(hWndWinAMP, WM_USER, 0, WA_GETSTATUS)
    
    Select Case Status
       Case 1
          WinAMP_GetStatus = "PLAYING"
       Case 3
          WinAMP_GetStatus = "PAUSED"
       Case Else
          WinAMP_GetStatus = "STOPPED"
    End Select
End Function
Private Sub Command1_Click()
WAClass = "Winamp v1.x" 'Users can change winamp class with a command line IRRC, so yeah.
hWndWinAMP = FindWindow(WAClass, vbNullString)
If hWndWinAMP <> 0 Then
    MsgBox WinAMP_GetStatus
Else
    MsgBox "Could not find Winamp!", vbOKOnly, "WA Status"
End If
End Sub
Минимальные изменения в шапке, что б VB6 не ругался, и переназначил вызов проверки состояния на кнопку.
Кажется в 2.95, или чуть раньше в линейки 2.9х, появилась возможность смотреть видео. А для более ранних версий есть плугин позволяющие смотреть видео.
Не 3я версия это отдельная история, 5ка по шустрее будет. Мне Винамп на некотором видео (в основном *.wmv) показывает без тормозов где vlc подтормаживает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:29, 21-04-2009 | #4


Аватара для Vovchick1

Старожил


Сообщения: 309
Благодарности: 38

Профиль | Отправить PM | Цитировать


Admiral
Сеньк работает!!!!
Похоже вот вчём ошибка была, API Viewer выдал не то описание функции:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Вместо:
Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Последний раз редактировалось Vovchick1, 21-04-2009 в 18:09.


Отправлено: 17:55, 21-04-2009 | #5


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Vovchick1 рад что смог помочь.
Приятного прослушивания музыки.
Спасибо за обратную связь.

Отправлено: 18:21, 21-04-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - [решено] Управление Winamp из VB

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Управление компьютера при помощи речи - Голосовое управление mihanik Программное обеспечение Windows 24 11-04-2014 03:36
Медиа - [решено] как сделать winamp программой по умолчанию? Miroed Microsoft Windows Vista 12 18-10-2008 08:36
Установка - [решено] Медиа клавиши и Winamp - Acer 5920 72.Flou Microsoft Windows Vista 4 20-08-2008 09:41
Медиа - [решено] Ассоциирование MP3 с Winamp wale Microsoft Windows Vista 2 04-07-2008 18:31
[решено] Сбились иконки для файлов Winamp Solrobot Microsoft Windows 2000/XP 7 27-06-2007 14:05




 
Переход