Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2007, à 23:35

sifourquier

simuler touche clavier c

bonjour
je voudrait faire un programme en c qui simule la frape d'une touche au clavier

j'ai tester avec

ungetch("a");

avec

#include <curses.h>

mais je n'arrive pas a compiler

gcc -o TEST TEST.c
TEST.c: In function «main":
TEST.c:69: attention : passing argument 1 of «ungetch" makes integer from pointer without a cast
TEST.c:59: attention : return type of «main" is not «int"
/tmp/ccF5lxXr.o: In function `main':
TEST.c:(.text+0x4b): undefined reference to `ungetch'
collect2: ld a retourné 1 code d'état d'exécution

alors si vous avez une solution merci d'avance
et si vous savez aussi commente simuler les touche et le déplacement de la sourie je suit preneur

Dernière modification par sifourquier (Le 05/07/2007, à 01:11)

Hors ligne

#2 Le 05/07/2007, à 10:15

qqun

Re : simuler touche clavier c

De maniere generale on "link" avec les librairie que l'on utiise.
donc de ce cas avec curses.

gcc -o TEST TEST.c -lcurses


http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

#3 Le 05/07/2007, à 13:25

sifourquier

Re : simuler touche clavier c

merci sa compile mais sa fait pas se que je veut
je veut que sa fasse comme si je tapait au clavier
par exemple si je fait

while(1)
{
 sleep(1)
 tape("a");
}

et j'ouvre kwrite tout les seconde il va écrire a dans kwrite

Hors ligne

#4 Le 05/07/2007, à 14:14

qqun

Re : simuler touche clavier c

je comprend pas tres bien le coup du kwrite neutral
enfin tu peux simuler le 'a'  avec ungetch().

basicement si tu fait :

  ungetch('a');

suivi d'un

  c = getch();

c prendra la valeur de 'a' soit 97.

l'exemple suivant en ncurses  montre l'utilisation de ungetch

le prg attend la touche 'a' pour sortir de la boucle.
mais  comme on a fait  ungetch('a') avant la boucle ,
la condition est remplie donc le prg affiche 'a' et sort de la boucle.
(et attend l'appuie d'une touche  avant de quitter)

#include <stdio.h>
#include <stdlib.h>
#include <ncurses.h>

int main(void){
	
	int c;
	
	initscr();
	clear();

	keypad(stdscr, TRUE);
        noecho();
        cbreak();
        nodelay(stdscr, TRUE);

        ungetch('a');	//add 'a' into the head of the input queue
		
	while(1){
		
		if ((c = getch()) ==ERR);  
                else if(c=='a'){
			mvwprintw(stdscr, 1,1, "%c",c);
			break;
		}
	}
	
	nodelay(stdscr, FALSE);
        echo();
	getch();
	endwin();
	
	return EXIT_SUCCESS;	
}

#5 Le 07/07/2007, à 16:31

mrf

Re : simuler touche clavier c

Oulah ça va pas marcher comme ça...

Tu veux simuler des entrées au clavier pour les applis X (graphiques) ?

ncurses est une lib "graphique" pour console, ça n'a rien à voir. Je ne sais pas exactement comment ça se passe, mais je pense que tu devrais plus te rapprocher d'Xlib que de ncurses

Hors ligne