2011-12-04 7 views
0

에 제트 오디오에 대한sendMessage 첨부 지금 ... ... 내가 API의 SDK에서 상수의 값을 찍은 내가 VB6에서 제트 오디오 API를 구현하기 위해 노력하고 VB6

Private Declare Function FindWindow Lib "user32.dll" 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 

Private Declare Function RegisterWindowMessage _ 
Lib "user32" Alias "RegisterWindowMessageA" _ 
(ByVal lpString As String) As Long 



Public Const WM_APP As Long = &H8000 
Public Const MyMSG As Long = WM_APP + 740 


Public Function GetJetAudioSong() 
Dim v As Long 
Dim JAhwnd As Long 


Dim lngMyMsg As Long 

lngMyMsg = RegisterWindowMessage(MyMSG) 

JAhwnd = FindWindow("COWON Jet-Audio Remocon Class", "Jet-Audio Remote Control") 

v = SendMessage(JAhwnd, lngMyMsg, 0, 995) 
MsgBox v 
End Function 

작동하지를 FindWindow() JAhwnd가 값으로 설정되어 있습니다 ... 작동하지 않는 것 같은 sendmessage()가 있습니다 ...

코드는 실행중인 Jet Audio 인스턴스의 버전 번호를 msgbox에 가정합니다.

지금은 며칠 동안 사용해 왔지만이 날씨가 VB인지 날씨가 좋지 않은지 확인하는 방법이 없습니다. const의 값이 올바른지 Jet Audio SDK의 단어를 사용하고 있습니다.

v의 값은 시스템에서 6이어야하며 항상 0입니다. 무엇이 잘못 되었나요?

답변

0

RegisterWindowMessage을 호출하지 마십시오. MyMSG는 Jet-Audio 창에 보내야하는 메시지 번호입니다.

Private Declare Function FindWindow Lib "user32.dll" 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 

Public Const WM_APP As Long = &H8000 
Public Const MyMSG As Long = WM_APP + 740 

Public Function GetJetAudioSong() 
Dim v As Long 
Dim JAhwnd As Long 

Dim lngMyMsg As Long 

JAhwnd = FindWindow("COWON Jet-Audio Remocon Class", "Jet-Audio Remote Control") 

v = SendMessage(JAhwnd, MyMSG, 0, 995) 
MsgBox v 
End Function 
+0

고마워요.하지만 작동하지 않습니다 ... 제가 ur 코드를 시도했는데 ... 그 전에 VB6에서 SendMessage를 통해 메시지를 보내기 전에 등록해야합니다. 그럼 지금은 뭐야? –

0

어떤 Windows 버전입니까? SendMessage 및 SendKeys는 Windows Vista 이상에서 시작하는 VB6 코드에서 더 이상 작동하지 않습니다. Google 검색을 수행합니다.

+0

windows 7 32 비트 ... 그 이상한 말은 ... winamp SDK는 sendmessage()를 사용하며 정상적으로 작동합니다. –

0

나는 이것이 2 년이라는 것을 알고있다. 앞으로이 책을 읽는 모든 분들께 참고로 사용하시기 바랍니다. 내가보기 엔 아무도 사용에서 SendKeys에 대해 추천, 또한

'[ Use 'ByVal' for your lParam to make sure you are passing the actual value not the Reference 
v = SendMessage(JAhwnd, lngMyMsg, 0, ByVal 995) 

'[ Or you could perform PostMessage(..) and not use ByVal 
v = PostMessage(JAhwnd, lngMyMsg, 0, 995) 

:

문제에 대한 수정

이있다. API는 올바른 hWnd에 메시지를 보내고 있는지 확인하는 올바른 방법입니다. 필자는 필사적으로 만 SendKeys를 사용할 것을 제안합니다. 그것은 일어날 수있다.

관련 문제