Управление WinAmp

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Paul K.
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 15.01.2004 (Чт) 0:07
Откуда: Санкт-Петербург

Управление WinAmp

Сообщение Paul K. » 15.01.2004 (Чт) 0:18

Мне очень интересно узнать, как реализуется управление функциями WinAmp 2.xx из другой программы (как это делается в Litestep).
Заранее спасибо.

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 15.01.2004 (Чт) 0:32

Посмотри эту парочку модулей:
http://modules.by.ru/winamp.zip
http://modules.by.ru/winampUpdate.zip
Сам не проверял, но по словам авторов они и реализуют управление Winamp'ом.[/url]

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 15.01.2004 (Чт) 0:59

Да вы что, даже не смешно..
Winamp умеет перехватывать сообщения WM_COPYDATA.
Об этом абсолютно все написано на http://www.winamp.com (странно, да?)


'Вот небольшой пример, если лень лезть на сайт

Option Explicit
Option Base 1

' Ищет окно по handle или по имени класса.
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As Long) As Long

' Посылает сообщение окну и ждет его обработки
' в отличие от PostMessage
Declare Function CopyDataSendMessage Lib "user32" Alias _
"SendMessageA" (ByVal WndID As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByRef lParam As COPYDATASTRUCT) As Long

' Ищет адрес строки в памяти
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _
(ByVal lpString1 As String, ByVal lpString2 As String) _
As Long

Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

Public hWndWinamp As Long
Public RetVal As Long

' Виндовая константа
Public Const WM_COPYDATA = &H4A

' Константа winamp (их мммммного, смотрите на www.winamp.com)
Public Const waAddFile As Long = 100 '(aka IPC_PLAYFILE)

'----------------------------------------------------------

' По умолчанию имя класса winamp = "Winamp v1.x"
' Вы можете изменить его через команду /CLASS
' C:\path\to\winamp\winamp.exe /CLASS="myclassname"
' И использовать ваше имя класса для управления

'----------------------------------------------------------

Public Sub AddFile(filename As String, waclass As String)
' Adds a file to the playlist

hWndWinamp = FindWindow(waclass, 0)
If hWndWinamp = 0 Then ' облом случился, winamp не найден
Exit Sub
End If

Dim cds As COPYDATASTRUCT
cds.dwData = waAddFile
' = 100 (IPC_PLAYFILE)
cds.lpData = lstrcpy(filename, filename)
' Копируем имя файла в себя
' ничего не происходит, зато получаем адрес переменной
cds.cbData = Len(filename) + 1
' Резервируем пространство для имени файла и завершающего нуль символа

RetVal = CopyDataSendMessage(hWndWinamp, WM_COPYDATA, 0&,cds)

End Sub[url][/url]

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Paul K.
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 15.01.2004 (Чт) 0:07
Откуда: Санкт-Петербург

Благодарность

Сообщение Paul K. » 15.01.2004 (Чт) 1:17

Большое спасибо, эти ответы охватывают все, что мне хотелось знать.

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.01.2004 (Чт) 17:19

Вот сюда еще посмотри
http://www.vbstreets.ru/VB/Sources/42741.aspx


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 14

    TopList