|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - [решено] Управление Winamp из VB |
|
|
Win32 API - [решено] Управление Winamp из VB
|
|
Старожил Сообщения: 309 |
Вообщем есть клавиатура с мультимидийными клавишами (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
|
Профиль | Отправить PM | Цитировать Vovchick1,
VB get Winamp status? ответы получают как раз с помощью данной функции. Используют 5ю версию. Я проверил на 5.5 - текущее состояние определяет корректно, на версии 2.76 не проверял. |
|
Отправлено: 15:19, 21-04-2009 | #2 |
|
Старожил Сообщения: 309
|
Профиль | Отправить PM | Цитировать Admiral
Спасибо за ответ, можеш скинуть конструкцию с помощью которой определял состояние, может я неверно её записал. Цитата:
![]() |
|
|
Последний раз редактировалось Vovchick1, 21-04-2009 в 17:13. Отправлено: 16:49, 21-04-2009 | #3 |
|
Ветеран Сообщения: 3320
|
Профиль | Отправить 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
Кажется в 2.95, или чуть раньше в линейки 2.9х, появилась возможность смотреть видео. А для более ранних версий есть плугин позволяющие смотреть видео. Не 3я версия это отдельная история, 5ка по шустрее будет. Мне Винамп на некотором видео (в основном *.wmv) показывает без тормозов где vlc подтормаживает. |
|
Отправлено: 17:29, 21-04-2009 | #4 |
|
Старожил Сообщения: 309
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Vovchick1 рад что смог помочь.
Приятного прослушивания музыки. Спасибо за обратную связь. |
|
Отправлено: 18:21, 21-04-2009 | #6 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Разное - Управление компьютера при помощи речи - Голосовое управление | 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 | |
|