Page 1 sur 2
Clavier multimédia
Publié : lun. 29/mai/2006 12:26
par lionel_om
Bonjour à tous.
J'avais réussi à repérer sur un ancien clavier les codes des touches multimédia (suivant, précédent, stop, etc.).
Mais là avec les nouveaux claviers, l'accès à ces fonctions ne semble plus se faire par le biais de touches : j'ai testé les keycode jusqu'à 500 et aucune ne correspond aux touches de lecture. J'ai essayé aussi en repérer un évènement par un callBack, mais sans succès : l'appui d'une touche multimédia ne déclenche pas une nouvel évènement (WaitWindowEvent() reste blocant et pas d'accès dans la fonction de CallBack).
Donc si vous avez une piste ou un code qui propose de gérer ces touches, je suis très très preneur !!!
Merci d'avance
Lio
Publié : lun. 29/mai/2006 18:32
par Flype
çà devrait pouvoir t'aider,
en tout cas les 9 touches multimédia de mon clavier usb sont bien reconnues.
Code : Tout sélectionner
If OpenWindow(0,100,100,200,200,"",#PB_Window_SystemMenu)
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE
Break
Case #WM_KEYUP
Case #WM_KEYDOWN
wParam.l = EventwParam() ; virtual-key code
lParam.l = EventlParam() ; flags
If lParam & $1000000
Debug "Extended-key"
Else
Debug "Standard-key"
EndIf
Debug "Code: " + Str(wParam)
Debug "Flags: " + RSet(Bin(lParam), 32, "0")
EndSelect
ForEver
EndIf
Publié : lun. 29/mai/2006 18:46
par Flype
et pour être encore plus précis:
Code : Tout sélectionner
Enumeration #VK_RMENU + 1 ; #VK pour Windows 2000/XP
#VK_BROWSER_BACK
#VK_BROWSER_FORWARD
#VK_BROWSER_REFRESH
#VK_BROWSER_STOP
#VK_BROWSER_SEARCH
#VK_BROWSER_FAVORITES
#VK_BROWSER_HOME
#VK_VOLUME_MUTE
#VK_VOLUME_DOWN
#VK_VOLUME_UP
#VK_MEDIA_NEXT_TRACK
#VK_MEDIA_PREV_TRACK
#VK_MEDIA_STOP
#VK_MEDIA_PLAY_PAUSE
#VK_LAUNCH_MAIL
#VK_LAUNCH_MEDIA_SELECT
#VK_LAUNCH_APP1
#VK_LAUNCH_APP2
EndEnumeration
If OpenWindow(0, 100, 100, 300, 200, "Touches Multimedia", #PB_Window_SystemMenu)
Repeat
Select WaitWindowEvent()
Case #WM_CLOSE
Break
Case #WM_KEYDOWN
If EventlParam() & $1000000
Debug "Extended-key"
Select EventwParam()
Case #VK_BROWSER_BACK: Debug "#VK_BROWSER_BACK"
Case #VK_BROWSER_FORWARD: Debug "#VK_BROWSER_FORWARD"
Case #VK_BROWSER_REFRESH: Debug "#VK_BROWSER_REFRESH"
Case #VK_BROWSER_STOP: Debug "#VK_BROWSER_STOP"
Case #VK_BROWSER_SEARCH: Debug "#VK_BROWSER_SEARCH"
Case #VK_BROWSER_FAVORITES: Debug "#VK_BROWSER_FAVORITES"
Case #VK_BROWSER_HOME: Debug "#VK_BROWSER_HOME"
Case #VK_VOLUME_MUTE: Debug "#VK_VOLUME_MUTE"
Case #VK_VOLUME_DOWN: Debug "#VK_VOLUME_DOWN"
Case #VK_VOLUME_UP: Debug "#VK_VOLUME_UP"
Case #VK_MEDIA_NEXT_TRACK: Debug "#VK_MEDIA_NEXT_TRACK"
Case #VK_MEDIA_PREV_TRACK: Debug "#VK_MEDIA_PREV_TRACK"
Case #VK_MEDIA_STOP: Debug "#VK_MEDIA_STOP"
Case #VK_MEDIA_PLAY_PAUSE: Debug "#VK_MEDIA_PLAY_PAUSE"
Case #VK_LAUNCH_MAIL: Debug "#VK_LAUNCH_MAIL"
Case #VK_LAUNCH_MEDIA_SELECT: Debug "#VK_LAUNCH_MEDIA_SELECT"
Case #VK_LAUNCH_APP1: Debug "#VK_LAUNCH_APP1"
Case #VK_LAUNCH_APP2: Debug "#VK_LAUNCH_APP2"
EndSelect
Else
Debug "Standard-key"
EndIf
EndSelect
ForEver
EndIf
Publié : lun. 29/mai/2006 20:37
par lionel_om
Merci Flype.
Arf, j'ai pas ma clé USB sur moi, je récupère le code demain.
Mais j'ai l'impressin que c'est ce que j'avais fait pour pour lecteur MP3 (ALP). Ca marchait niquel sur mon ancien clavier, mais plus sur le nouveau. En tout cas je récupère ça demain qd même.
Merci

Publié : lun. 29/mai/2006 22:19
par Backup
chez moi ça marche niquel sur mon clavier logitech noir !!
Merci pour le code !

Publié : mar. 30/mai/2006 8:02
par Good07
Chez moi ça ne marche pas
Il n'y a que les touches standards qui fonctionnent et les touches page up et page down.
Clavier Microsoft "Wireless mutimédia keyboard".
Publié : mar. 30/mai/2006 8:27
par Flype
il faut winXP ou win2000, as-tu essayé sur cet OS ?
Publié : mer. 31/mai/2006 9:07
par lionel_om
Non je confirme, chez moi ca ne marche pas sur mon nouveau clavier (Logitech Cordless Desktop S510 Media Remote). Mon ancien gérait très bien les touches multimédia avec ce code, mais pour le nouveau aucun signal ni touche ne sont détectés...
J'v aller regarder sur le forum anglais...
Publié : mer. 31/mai/2006 17:17
par Good07
Bonjour flype.
Désolé pour cette réponse tardive, mais j'utilise window XP version SP2 et ça ne marche pas.

Publié : mer. 31/mai/2006 23:39
par Flype
bah alors là je vois pas.
sinon question bête mais avez vous déjà un soft (livré avec le clavier ou pas) qui controle déjà ces touches, qui tourne en tache de fond ?
j'ai testé chez moi et au boulot, 2 claviers USB (1 Laptec, 1 Logitech ).
ca marche nickel. pour mes 2 claviers, dans le gestionnaire de périphériques, j'ai "Claviers -> Périphérique clavier PIH". Et vous ?
sachant que je n'ai justement pas installé de driver et/ou soft.
Publié : jeu. 01/juin/2006 9:20
par lionel_om
Oué y'a un soft qui tourne.
Moi aussi j'ai WinXp SP2.
Par contre ces touches multimédia marchent sous leurs logiciels, mais aussi Windows Media Player et sans doute d'autres...
Mais ni code touche, ni événement n'est envoyé, donc c'est bizarre
Ya pas d'autres moyens pour avoir des E/S ???
Publié : jeu. 01/juin/2006 15:38
par Good07
Moi dans le gestionnaire de périphérique j'ai "Clavier standard 101/102 touches ou clavier microsoft natural keyboard ps/2.
Mais j'ai aussi un soft qui tourne et effectivement mon clavier est bien géré par lui. Chaque fois que j'appuie sur une touche elle est bien reconnue, par contre sous Pure nada...Aucun évènements interceptés.
Comment font ils ?
I don't Know...
Publié : mar. 10/oct./2006 16:48
par Flype
voici un code de Karlkox qui pourrait faire l'affaire.
voir ici:
http://www.purebasic.fr/english/viewtopic.php?t=24059
@good007 et lionel_om
cela marche-t-il chez vous ?
Code : Tout sélectionner
Enumeration
#APPCOMMAND_BROWSER_BACKWARD = 1
#APPCOMMAND_BROWSER_FORWARD
#APPCOMMAND_BROWSER_REFRESH
#APPCOMMAND_BROWSER_STOP
#APPCOMMAND_BROWSER_SEARCH
#APPCOMMAND_BROWSER_FAVORITES
#APPCOMMAND_BROWSER_HOME
#APPCOMMAND_VOLUME_MUTE
#APPCOMMAND_VOLUME_DOWN
#APPCOMMAND_VOLUME_UP
#APPCOMMAND_MEDIA_NEXTTRACK
#APPCOMMAND_MEDIA_PREVIOUSTRACK
#APPCOMMAND_MEDIA_STOP
#APPCOMMAND_MEDIA_PLAY_PAUSE
#APPCOMMAND_LAUNCH_MAIL
#APPCOMMAND_LAUNCH_MEDIA_SELECT
#APPCOMMAND_LAUNCH_APP1
#APPCOMMAND_LAUNCH_APP2
#APPCOMMAND_BASS_DOWN
#APPCOMMAND_BASS_BOOST
#APPCOMMAND_BASS_UP
#APPCOMMAND_TREBLE_DOWN
#APPCOMMAND_TREBLE_UP
;#if(_WIN32_WINNT >= 0x0501)
#APPCOMMAND_MICROPHONE_VOLUME_MUTE
#APPCOMMAND_MICROPHONE_VOLUME_DOWN
#APPCOMMAND_MICROPHONE_VOLUME_UP
#APPCOMMAND_HELP
#APPCOMMAND_FIND
#APPCOMMAND_NEW
#APPCOMMAND_OPEN
#APPCOMMAND_CLOSE
#APPCOMMAND_SAVE
#APPCOMMAND_PRINT
#APPCOMMAND_UNDO
#APPCOMMAND_REDO
#APPCOMMAND_COPY
#APPCOMMAND_CUT
#APPCOMMAND_PASTE
#APPCOMMAND_REPLY_TO_MAIL
#APPCOMMAND_FORWARD_MAIL
#APPCOMMAND_SEND_MAIL
#APPCOMMAND_SPELL_CHECK
#APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE
#APPCOMMAND_MIC_ON_OFF_TOGGLE
#APPCOMMAND_CORRECTION_LIST
#APPCOMMAND_MEDIA_PLAY
#APPCOMMAND_MEDIA_PAUSE
#APPCOMMAND_MEDIA_RECORD
#APPCOMMAND_MEDIA_FAST_FORWARD
#APPCOMMAND_MEDIA_REWIND
#APPCOMMAND_MEDIA_CHANNEL_UP
#APPCOMMAND_MEDIA_CHANNEL_DOWN
EndEnumeration
Macro LOWORD(Value)
Value & $FFFF
EndMacro
Macro HIWORD(Value)
(Value >> 16) & $FFFF
EndMacro
#FAPPCOMMAND_MASK = $F000
Macro GET_APPCOMMAND_LPARAM(lParam)
HIWORD(lParam) & ~#FAPPCOMMAND_MASK
EndMacro
Procedure WndProc(WindowID, message, wParam, lParam)
Protected result.l, cmd.l
result = #PB_ProcessPureBasicEvents
If message = #WM_APPCOMMAND
cmd = GET_APPCOMMAND_LPARAM(lParam)
Debug "cmd = " + Str(cmd)
EndIf
ProcedureReturn Result
EndProcedure
If OpenWindow(0,0,0,320,240,"Multimedia Keyboard Extension")
SetWindowCallback(@WndProc())
Repeat : event = WaitWindowEvent() : Until event = #PB_Event_CloseWindow
EndIf
Publié : mer. 11/oct./2006 7:39
par lionel_om
Merci Flype pour ce code.
Avec un ancien clavier multimédia ca marche nickel, par contre n'étant pas chez moi (mais au boulot) j'v tester ça ce soir en rentrant.
Si ca marche tu seras mon héros !

Publié : mer. 11/oct./2006 8:53
par Flype
pas moi - karlkox oui - moi j'ai juste pensé à toi
