Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Simulation de touche clavier

4 réponses
Avatar
Michel Campfort
Bonjour,

Comment peut on simuler l'appui d'une touche clavier lorsqu'une action
est détectée ( en l'occurence, par usbhidctl )?
En fait, c'est pour pouvoir utiliser un shuttle dans un logiciel de
montage vidéo.

Amicalement

Michel

4 réponses

Avatar
Bruno Ducrot
Bonjour,

On 01-06-2012, Michel Campfort wrote:
Bonjour,

Comment peut on simuler l'appui d'une touche clavier lorsqu'une action
est détectée ( en l'occurence, par usbhidctl )?
En fait, c'est pour pouvoir utiliser un shuttle dans un logiciel de
montage vidéo.



Helas, Je n'ai qu'une piste a te proposer, mais je pense que ca vaut
le coup de creuser un peu.

Sous FreeBSD, vkbd(4) est un driver simulant un clavier AT. Celui-ci
permet, par exemple, de pouvoir se servir d'un clavier bluetooth a
l'aide du daemon bthidd(8).

Du coup, tu devrais lire la page de man de vkbd(4), pour voir
si cela peut convenir, ainsi que celle de kbdcontrol(1).

A plus,

--
Bruno Ducrot

A quoi ca sert que Ducrot hisse des carcasses ?
Avatar
Michel Campfort
Le 01.06.2012 16:11, Bruno Ducrot a écrit :
Bonjour,

On 01-06-2012, Michel Campfort wrote:
Bonjour,

Comment peut on simuler l'appui d'une touche clavier lorsqu'une action
est détectée ( en l'occurence, par usbhidctl )?
En fait, c'est pour pouvoir utiliser un shuttle dans un logiciel de
montage vidéo.



Helas, Je n'ai qu'une piste a te proposer, mais je pense que ca vaut
le coup de creuser un peu.

Sous FreeBSD, vkbd(4) est un driver simulant un clavier AT. Celui-ci
permet, par exemple, de pouvoir se servir d'un clavier bluetooth a
l'aide du daemon bthidd(8).

Du coup, tu devrais lire la page de man de vkbd(4), pour voir
si cela peut convenir, ainsi que celle de kbdcontrol(1).

A plus,



Merci pour ces pistes. Quand ( ou si ) j'arrive à quelque chose, je fais
un retour.

Amicalement
Michel
Avatar
Bruno Ducrot
On 01-06-2012, Michel Campfort wrote:
Le 01.06.2012 16:11, Bruno Ducrot a écrit :
Bonjour,

On 01-06-2012, Michel Campfort wrote:
Bonjour,

Comment peut on simuler l'appui d'une touche clavier lorsqu'une action
est détectée ( en l'occurence, par usbhidctl )?
En fait, c'est pour pouvoir utiliser un shuttle dans un logiciel de
montage vidéo.



Helas, Je n'ai qu'une piste a te proposer, mais je pense que ca vaut
le coup de creuser un peu.

Sous FreeBSD, vkbd(4) est un driver simulant un clavier AT. Celui-ci
permet, par exemple, de pouvoir se servir d'un clavier bluetooth a
l'aide du daemon bthidd(8).

Du coup, tu devrais lire la page de man de vkbd(4), pour voir
si cela peut convenir, ainsi que celle de kbdcontrol(1).

A plus,



Merci pour ces pistes. Quand ( ou si ) j'arrive à quelque chose, je fais
un retour.



Je viens de faire un petit test.


~/dev> sudo kldload vkbd
~/dev> cat test_vkbd.c
#include <err.h>
#include <fcntl.h>
#include <unistd.h>

static unsigned int codes[] =
{
/* Make Break */
0x1C, 0x9C,
};

int
main(void)
{
int fd;
ssize_t len;

fd = open("/dev/vkbdctl0", O_RDWR);
if (fd < 0)
err(1, "open");

len = write(fd, codes, sizeof(codes));
if (len < 0)
err(1, "write");

close(fd);

return 0;
}
~/dev> gcc -Wall -Wextra test_vkbd.c
~/dev> sudo touch /dev/vkbdctl
~/dev> sudo ./a.out

~/dev>
~/dev>


Cela simule l'appui sur la touche <RET>. Le coup du
"touch /dev/vkbdctl" permet de ne pas le faire directement dans
test_vkbd.c, et je sais que c'est crade (je te le laisse en
exercice et surtout parce que je suis une grosse feignasse).

J'ai trouve les codes des touches dans :
/usr/src/usr/.sbin/bluetooth/bthidd/kbd.c

Tu aura, pour chaque touche, une paire de deux entiers (Make, Break)
permettant respectivement l'appui et le relachement de la touche que
tu desires simuler.

A plus,

--
Bruno Ducrot

A quoi ca sert que Ducrot hisse des carcasses ?
Avatar
Michel Campfort
Le 01.06.2012 18:14, Bruno Ducrot a écrit :
On 01-06-2012, Michel Campfort wrote:
Le 01.06.2012 16:11, Bruno Ducrot a écrit :
Bonjour,

On 01-06-2012, Michel Campfort wrote:
Bonjour,

Comment peut on simuler l'appui d'une touche clavier lorsqu'une action
est détectée ( en l'occurence, par usbhidctl )?
En fait, c'est pour pouvoir utiliser un shuttle dans un logiciel de
montage vidéo.



Helas, Je n'ai qu'une piste a te proposer, mais je pense que ca vaut
le coup de creuser un peu.

Sous FreeBSD, vkbd(4) est un driver simulant un clavier AT. Celui-ci
permet, par exemple, de pouvoir se servir d'un clavier bluetooth a
l'aide du daemon bthidd(8).

Du coup, tu devrais lire la page de man de vkbd(4), pour voir
si cela peut convenir, ainsi que celle de kbdcontrol(1).

A plus,



Merci pour ces pistes. Quand ( ou si ) j'arrive à quelque chose, je fais
un retour.



Je viens de faire un petit test.


~/dev> sudo kldload vkbd
~/dev> cat test_vkbd.c
#include <err.h>
#include <fcntl.h>
#include <unistd.h>

static unsigned int codes[] =
{
/* Make Break */
0x1C, 0x9C,
};

int
main(void)
{
int fd;
ssize_t len;

fd = open("/dev/vkbdctl0", O_RDWR);
if (fd < 0)
err(1, "open");

len = write(fd, codes, sizeof(codes));
if (len < 0)
err(1, "write");

close(fd);

return 0;
}
~/dev> gcc -Wall -Wextra test_vkbd.c
~/dev> sudo touch /dev/vkbdctl
~/dev> sudo ./a.out

~/dev>
~/dev>


Cela simule l'appui sur la touche <RET>. Le coup du
"touch /dev/vkbdctl" permet de ne pas le faire directement dans
test_vkbd.c, et je sais que c'est crade (je te le laisse en
exercice et surtout parce que je suis une grosse feignasse).

J'ai trouve les codes des touches dans :
/usr/src/usr/.sbin/bluetooth/bthidd/kbd.c

Tu aura, pour chaque touche, une paire de deux entiers (Make, Break)
permettant respectivement l'appui et le relachement de la touche que
tu desires simuler.

A plus,



Merci ( bis ). Je mets ça au chaud et je m'y plonge asap.

Cordialement
Michel