OVH Cloud OVH Cloud

sasie clavier non bufferisée

4 réponses
Avatar
djodj
je suis sous visual C++ et je cherche a faire une sasie d'une caractere "à
la volée" c'est a dire sans avoir a taper sur la touche "Entrée" pour que le
caractere soit saise.. mais je n'y arrive pas..

quelq'un a la solution?

mercie d'avance
Djodj

4 réponses

Avatar
Alexandre
"djodj" a écrit dans le message de
news:bln52t$h81$
je suis sous visual C++ et je cherche a faire une sasie d'une caractere "à
la volée" c'est a dire sans avoir a taper sur la touche "Entrée" pour que


le
caractere soit saise.. mais je n'y arrive pas..

quelq'un a la solution?

mercie d'avance
Djodj



dans un contrôle EDIT ?
Avatar
Christian ASTOR
djodj wrote:
je suis sous visual C++ et je cherche a faire une sasie d'une caractere "à
la volée" c'est a dire sans avoir a taper sur la touche "Entrée" pour que le
caractere soit saise..



A[Enter]
h[Enter]
[Enter]
?[Enter]
[Enter]
P[Enter]
a[Enter]
r[Enter]
c[Enter]
e[Enter]
[Enter]
q[Enter]
u[Enter]
'[Enter]
i[Enter]
l[Enter]
[Enter]
f[Enter]
a[Enter]
u[Enter]
t[Enter]
[Enter]
t[Enter]
a[Enter]
p[Enter]
e[Enter]
r[Enter]
[Enter]
[[Enter]
E[Enter]
n[Enter]
t[Enter]
r[Enter]
é[Enter]
e[Enter]
][Enter]
[Enter]
a[Enter]
p[Enter]
r[Enter]
è[Enter]
s[Enter]
[Enter]
c[Enter]
h[Enter]
a[Enter]
q[Enter]
u[Enter]
e[Enter]
[Enter]
c[Enter]
a[Enter]
r[Enter]
a[Enter]
c[Enter]
t[Enter]
è[Enter]
r[Enter]
e[Enter]
[Enter]
?[Enter]
[Enter]
[Enter]
?[Enter]
?[Enter]
?[Enter]


[Enter]
Avatar
Philippe Mignard
keybd_event

djodj wrote:
je suis sous visual C++ et je cherche a faire une sasie d'une caractere "à
la volée" c'est a dire sans avoir a taper sur la touche "Entrée" pour que le
caractere soit saise.. mais je n'y arrive pas..

quelq'un a la solution?

mercie d'avance
Djodj





Avatar
Christian
Si ton application est en mode console, il existe des fonctions de l'API
Windows qui permettent de passer en mode caractère ou en mode ligne au
niveau de la console : GetStdHandle, GetConsoleMode et SetConsoleMode
Pour t'aider, j'indique ci-dessous un exemple C# qui reprend l'API Win32,
tu dois pouvoir t'en inspirer :

Christian
==================> DEBUT DU CODE

public class Con

{

const int STD_INPUT_HANDLE = -10;

const int ENABLE_LINE_INPUT = 0x0002;

const int ENABLE_ECHO_INPUT = 0x0004;

[DllImport("kernel32")]

public static extern IntPtr GetStdHandle( int nStdHandle);

[DllImport("kernel32")]

public static extern bool GetConsoleMode( IntPtr hConsoleHandle, ref int
pmode);

[DllImport("kernel32")]

public static extern bool SetConsoleMode( IntPtr hConsoleHandle, int mode);

public static void EnableCharMode()

{

IntPtr hConsole;

int mode= 0;

hConsole = GetStdHandle(STD_INPUT_HANDLE);

GetConsoleMode(hConsole, ref mode);

// must turn off echo mode when character input

mode &= ~ (ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT);

SetConsoleMode(hConsole, mode);

}

public static void EnableLineMode()

{

IntPtr hConsole;

int mode=0;

hConsole = GetStdHandle(STD_INPUT_HANDLE);

GetConsoleMode(hConsole, ref mode);

mode |= (ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT);

SetConsoleMode(hConsole, mode);

}

}

==================> FIN DE CODE


"djodj" a écrit dans le message de
news:bln52t$h81$
je suis sous visual C++ et je cherche a faire une sasie d'une caractere "à
la volée" c'est a dire sans avoir a taper sur la touche "Entrée" pour que


le
caractere soit saise.. mais je n'y arrive pas..

quelq'un a la solution?

mercie d'avance
Djodj