OBJET FIXER ÉQUIVALENT CLAVIER sur des touches multimédia

Bonjour,

Je suis en train de faire un transcripteur à intégrer dans mon appli (Secrétariat qui tape des compte-rendu à partir de fichiers audio) et forcément, la pédale pour gérer cela, utilise les touches multimédias (piste précédente, piste suivante, play/pause, …)

Je me suis dit “rien de plus simple, je mets des raccourcis claviers sur mes boutons, avec OBJET FIXER ÉQUIVALENT CLAVIER”

Sauf que cela ne prend pas les codes ascii supérieurs à 127
Les touches multimédias sont en codes

  • 176 --> VK_MEDIA_NEXT_TRACK
  • 177 --> VK_MEDIA_PREV_TRACK
  • 178 --> VK_MEDIA_STOP
  • 179 --> VK_MEDIA_PLAY_PAUSE

Autant si je mets comme paramètres “[F10]” ou “caractère(121)” ça marche, autant si je mets “caractère(176)”, ça marche pas.

Comment peut-on faire pour lui faire comprendre (à 4D et surtout à la fonction OBJET FIXER ÉQUIVALENT CLAVIER) que je veux attribuer ces codes caractères ?

Cordialement,

F. BOUSSON

Elle ne m’ont pas l’air détectables par 4D, ces touches. Du moins, si j’essaie de les affecter “à l’ancienne”, dans le dialogue ouvert avec propriétés/équivalent clavier, ça lance iTunes mais rien ne se passe dans 4D.

C’est bien dommage car d’autres plateformes de développement (Windev pour ne pas le nommer :wink: ) est capable de les détecter, de me rendre le bon code ascii et surtout me permet d’attribuer ce raccourci à mes touches.

Je sens qu’il va falloir que je me tape une “pustule” codée sous Windev en Java qui ira communiquer avec mon appli 4D (surement via un système de socket) en lui envoyant le texte de la touche. Et du coté 4D, mettre un raccourci avec les touches Fxx associées à l’appui de CTRL+ALT+SHIFT (pour être sûr à 99% que l’utilisateur n’aura pas l’idée d’aller tester ce raccourci).

Ca devient un peu usine à gaz de devoir suppléer aux soucis que 4D ne sait pas régler par rapport à la concurrence (voir ma doléance avec WP) !!!

F. BOUSSON

C’est pas une pustule, c’est un cancer qui ne demande qu’à métastaser :lol:
Perso, je passerais soit à la concurrence, soit à d’autres touches.

Je ne peux pas changer les touches, elles sont paramétrées comme cela sur le matériel et on ne peut pas les changer.
Donc effectivement, je dois faire une passerelle qui détectera les touches multimédias, les enverra codées à 4D qui lui, indiquera à mon application un clic sur un autre raccourci.

Je ne dispose pas d’un clavier avec des touches multimedia, mais j’ai voulu testé avec des raccourcis utilisant des caractères dont le code ascii est supérieur à 127 et chez moi ça fonctionne.

voir la base d’exemple :

http://forums.4d.com/4DBB_Main/x_User/464/files/27580225.zip

Je met la photo, pour être sûr qu’on parle de la même chose.
[]27580346;“Your comment here…”[/]

Je n’ai pas regardé sous windows, mais sur mac, ces touches semblent gérées au niveau système, comme les boutons de volume. Du moins elles ne font ni chaud ni froid (et encore moins beep) à 4D avec un APPELER SUR EVENEMENT (supposé faire beep) (et ça lance toujours iTunes)

Oui, oui, je parle bien de ces touches.
Sous Windows, elles ne sont pas reconnues par 4D (en tout cas pas quand j’affecte les codes 176 à 179 qui sont censés être ceux de ces touches)

http://forums.4d.com/4DBB_Main/x_User/1917529/files/27580527.pdf

Tu as tenté un ‘appeler sur événement’ sous windows ?
Genre :
si(ev@ fo@=Sur chargement)
APPELER SUR ÉVÉNEMENT(“faireBip”)
fin de si

avec ça dans la méthode faireBip:
BEEP

I can try to extend this to support ON VIRTUAL KEY or something like that

https://github.com/miyako/4d-plugin-virtual-key

https://github.com/miyako/4d-plugin-media-key

could not test windows…

I did a quick test on Windows, it seems to work.

However, 4D will not prevent the default app (iTunes, Edge, etc.) from processing these events.

Alors, suite de l’affaire…
J’ai eu la Hot-Line 4D et effectivement, les codes au dessus de 127 ne sont pas reconnu, j’ai donc fait créé un incident via TAOW

J’ai également fait une pustule (une service Windows développé en Windev) qui hook les 3 touches --> Et ça fonctionne
Maintenant, je butte sur la connexion entre le Service Windows et 4D:

  • Impossible de passer les paramètres à 4D via l’API WIN32 et l’option SendMessage (qui pourtant est normalisé)
  • Impossible de passer par des socket --> 4D ne sait pas faire

Je ne comprends par comment 4D peut être aussi fermé par rapport à l’extérieur !!!

Je vais demander un ajout de fonction SOCKET sur 4D via le forum et TAOW mais je pense que je rêve+++++