Télécommande et Interception des messages d'une fenetre
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010
-
22 août 2008 à 01:17
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010
-
3 sept. 2008 à 22:01
Bonjour à tous,
Je cherche une méthode pour intercepter les messages que ma télécommande (port USB) envoie à une application externe.
Le but étant de bloquer le message initial et de remplacer le message via l'API SendMessage.
- Je récupère sont hWnd sans problème. (dans ma var : mhXBMC_hWnd)
- Je parviens a envoyer via SendMessage
- Je ne parviens pas a intercepter et annuler le message initial.
On m'a dit qu'il fallait faire un Hook, mais je ne maitrise pas du tout et j'aurais souhaité une aide de votre part.
Mes API sont déclarées :
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public PrevProc As Long
Public Function MyWndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Dim retVal As Long
'// Interception des messages
Select Case Msg
'// On intercepte WM_KEYDOWN
Case WM_KEYDOWN
'//Intercepter et remplacer le message initial
Case WM_KEYUP
'//Intercepter et remplacer le message initial
Case Else
'// Intercepter autre ?
End Select
'// On demande que OldWndProc gère les messages courants
'// tels que les clicks,les Load, et autres...
retVal = CallWindowProc(OldWndProc, hwnd, Msg, wParam, lParam)
'// Retourne la valeur du traitement de OldWndProc à Windows
MyWndProc = retVal
End Function
Si je lance ca, je perd la main de mon application VB6 et je dois killer via Task Manager.
Comment dès lors, intercepter les messages de mon autre fenetre ?
(J'espère que j'ai été clair dans ma demande)
D'avance merci pour votre aide.
A voir également:
Télécommande et Interception des messages d'une fenetre
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010 24 août 2008 à 17:09
Je suis étonné que personne n'ai encore répondu.
Ceci dit, je vais être plus précis :
Est-il possible de hooker une fenêtre autre que mon appli et de d'intercepter tout les messages qui transitent ?
Dans le même régistre, est-il possible de hooker une fenêtre qui utilise DirectInput et de recevoir tout ses messages ?
Un petit exemple serait fortement apprécié.
Merci d'avance, à ceux qui répondront.