Foros del Web » Programación para mayores de 30 ;) » C/C++ »

reconocer tecla pulsada

Estas en el tema de reconocer tecla pulsada en el foro de C/C++ en Foros del Web. Alguien puede decirme como poder identificar cuando un usuario teclea, por ejemplo, la tecla F1, independientemente en el lugar donde se encuentre, del programa, y ...
  #1 (permalink)  
Antiguo 03/11/2006, 11:55
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
reconocer tecla pulsada

Alguien puede decirme como poder identificar cuando un usuario teclea, por ejemplo, la tecla F1, independientemente en el lugar donde se encuentre, del programa, y me mande a mi funcion, por ejemplo, de ayuda ?.
  #2 (permalink)  
Antiguo 03/11/2006, 22:01
Avatar de julwo  
Fecha de Ingreso: mayo-2004
Ubicación: santiago, Rep Dom
Mensajes: 252
Antigüedad: 20 años
Puntos: 0
busca info sobre kbhit creo k es asi
__________________
Cuando las cosa son Buenas, SON BUENAS! no importan las R@tas que orinen en el camino! Me SiGUe!!
  #3 (permalink)  
Antiguo 04/11/2006, 07:06
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
La verdad es que he estado buscando y encontre varias cosas como la que tu mencionas (kbhit), getchar(), entre otras pero creo que mi problema va un poco mas alla, mi idea es reconocer las teclas F1, F2, etc, y encontre que a esas teclas se les conoce como caracteres extendidos, probe con el kbhit, getchar(), pero al imprimirme el valor, no me imprime nada, probablemente lo estoy haciendo mal, pero gracias por el interes, seguire buscando, y si te interesas un poco en esto, tambien te lo agradeceria, gracias.
  #4 (permalink)  
Antiguo 05/11/2006, 11:06
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años
Puntos: 0
en consola quien sabe.

En win, eso esta facil como manejar la api
__________________
-> La duda adecuada es un buen comienzo <-
  #5 (permalink)  
Antiguo 05/11/2006, 14:42
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Con ANSI-C no se puede.
  #6 (permalink)  
Antiguo 04/12/2006, 22:04
Avatar de Nigthmare  
Fecha de Ingreso: diciembre-2006
Ubicación: /home/vsanchez
Mensajes: 38
Antigüedad: 17 años, 5 meses
Puntos: 0
bioskey(0)

Mira, soy nuevo en C, pero hay una instrucción llamada bioskey, dentro de la libreria BIOS.H; lo que hace es leer la telca que se presiona y si lo imprimes con un %d, te retornara un valor decimal y ese lo puedes utilizar a tu conveniencia, mira para saber el valor de las teclas yo uso algo similar a lo siguiente:
#include <stdio.h>
#include <conio.h>
#include <bios.h>
void main()
{
int key;
key=bioskey(0);
printf("%c -> %d",key,key);
getch();
}
  #7 (permalink)  
Antiguo 05/12/2006, 01:09
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Eso NO es de C bajo ningun concepto. Tanto conio.h como bios.h son librerias NO standard.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #8 (permalink)  
Antiguo 05/12/2006, 09:31
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por Nigthmare Ver Mensaje
Mira, soy nuevo en C, pero hay una instrucción llamada bioskey
Y yo tengo 5 años de C y te digo lo mismo que Eternal Idol.
  #9 (permalink)  
Antiguo 05/12/2006, 17:36
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Cita:
Alguien puede decirme como poder identificar cuando un usuario teclea, por ejemplo, la tecla F1, independientemente en el lugar donde se encuentre, del programa, y me mande a mi funcion, por ejemplo, de ayuda ?.
Creo que nunca dijo que tenia que ser con C ni con C++ ni nada.
Para hacerlo tendras que usar una libreria no estandar como te lo indican.
Hay muchisimas. Desde librerias multimedia como directX en el caso linux, hasta librerias que solo te dan informacion sobre el teclado.
aunque lo ideal es que le pidas es info al sistema con llamadas al sistema en el que programes.

saludos
  #10 (permalink)  
Antiguo 05/12/2006, 21:35
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Orale, gracias por el dato Nigthmare, y de hecho si lo queria hacer con C++, ahora que Instru me comenta que esas librerias NO son estandar pues creo no las utilizare, ya que gracias a las preguntas que he hecho en este foro, ya he tomado las ideas de "no utilizar librerias estandar" ;-P , gracias a todos de nuevo.

Saludos...
  #11 (permalink)  
Antiguo 06/12/2006, 17:17
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: reconocer tecla pulsada

Cita:
ya he tomado las ideas de "no utilizar librerias estandar" ;-P , gracias a todos de nuevo.
MMmm. Pues no, esa no es la idea. Lo ideal es usar siempre lo estandar, pero algunas veces no encontraras una manera estandar de hacer algun programa.
Aun asi, trata de apegarte mucho a el, creeme, a la larga te servira mucho.

Saludos
  #12 (permalink)  
Antiguo 06/12/2006, 18:15
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: reconocer tecla pulsada

jajajajaja, perdon, lo que queria decir era que:

Cita:
Ya no utilizare, ni utilizo, librerias NO estandar
eso fue lo que queria decir, jajajaja, perdon pero hasta risa me doy, ya decia un probervio "aprende a reirte de ti mismo, pero sin llegar a humillarte" , lo aclaro ya que gracias a Eternal Idol, MaxExtreme e Instru, deje de usar Borland para utilizar el Dev-C++, que ademas es libre(eso creo)...

Saludos...
  #13 (permalink)  
Antiguo 07/12/2006, 18:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: reconocer tecla pulsada

Cita:
Iniciado por BLEND Ver Mensaje
jajajajaja, perdon, lo que queria decir era que:

eso fue lo que queria decir, jajajaja, perdon pero hasta risa me doy, ya decia un probervio "aprende a reirte de ti mismo, pero sin llegar a humillarte" , lo aclaro ya que gracias a Eternal Idol, MaxExtreme e Instru, deje de usar Borland para utilizar el Dev-C++, que ademas es libre(eso creo)...

Saludos...
Puedes probar mejor Code::Blocks (hecho en C++, no como Dev-C++ que fue hecho en Delphi), disponible fácilmente para Windows y Linux, el debugger se integra mejor y en general todo funciona mejor que con Dev-C++. :)

Reconozco que Dev-C++ ha valido la pena, pero Code::Blocks ha llegado para sustituirle (además que Dev-C++ no se actualiza más que yo sepa).
  #14 (permalink)  
Antiguo 08/12/2006, 14:53
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: reconocer tecla pulsada

Hey MaxExtreme, apenas lo estoy descargando, y parece que es bueno, ya que he encontrado muy buenos comentarios hacerca de ese IDE, ahora solo queda esperar a que mi potente conexion que corre a 50.6 poderosos kbs :P, lo descargue jejeje, gracias por el dato.

Saludos...
  #15 (permalink)  
Antiguo 08/12/2006, 15:25
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: reconocer tecla pulsada

Cita:
Iniciado por BLEND Ver Mensaje
Hey MaxExtreme, apenas lo estoy descargando, y parece que es bueno, ya que he encontrado muy buenos comentarios hacerca de ese IDE, ahora solo queda esperar a que mi potente conexion que corre a 50.6 poderosos kbs :P, lo descargue jejeje, gracias por el dato.
De nada :)

Ya sabes:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>

Practica esas, que serán las que vayas a usar durante el resto de tu aventura en la programación.
  #16 (permalink)  
Antiguo 08/12/2006, 21:19
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: reconocer tecla pulsada

Solo una pregunta mas Max, sera bueno dejar el Dev e instalar el Code::Blocks, o me podria causar conflictos al tener instalados los dos ?.

Saludos...
  #17 (permalink)  
Antiguo 08/12/2006, 21:34
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: reconocer tecla pulsada

Cita:
Iniciado por BLEND Ver Mensaje
Solo una pregunta mas Max, sera bueno dejar el Dev e instalar el Code::Blocks, o me podria causar conflictos al tener instalados los dos ?.

Saludos...
En principio no, pero los dos usan gcc (y compañía), y si alguna vez te decides a compilar desde la consola a mano, te encontrarás que al escribir "gcc" Windows sólo te direccionará a un programa.

Si no quieres armarte lío, deja Dev-C++ y usa sólo Code::Blocks. Ya te digo que Dev-C++ está paralizado además de que tiene bastantes bugs por ahí sin resolver.
  #18 (permalink)  
Antiguo 09/12/2006, 00:14
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: reconocer tecla pulsada

Para que quieres tener los 2?
Primeramente no usan gcc como tal aunque la base sea esta. El nombre del compilador que usan es mingw32(que es un port de gcc para windows).
Dev-Cpp y Code::blocks usan el mismisimo mingw32, igualito. El codeblocks tiene lo que dev-cpp te peude dar y un poco mas.

Para que quieres los 2?

Saludos
  #19 (permalink)  
Antiguo 09/12/2006, 11:04
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: reconocer tecla pulsada

Gracias MAxExtreme, creo que seguire tu consejo y utilizare el Code::blocks.

Cita:
Para que quieres tener los 2?
Primeramente no usan gcc como tal aunque la base sea esta. El nombre del compilador que usan es mingw32(que es un port de gcc para windows).
Dev-Cpp y Code::blocks usan el mismisimo mingw32, igualito. El codeblocks tiene lo que dev-cpp te peude dar y un poco mas.

Para que quieres los 2?

Saludos
Tienes razon Instru, ;D solo utilizare uno, es solo que tenia esa duda, de nuevo gracias.

Saludos...
  #20 (permalink)  
Antiguo 22/12/2006, 11:28
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: reconocer tecla pulsada

Se que ya aclararon tu duda, pero yo desarrollo bajo linux y uso Code::Blocks, tambien lo uso cuando solo puedo usar windows y me va de lujo, use un par de veces el DevCpp y no le vi nada interesante.

El KDevelop tambien es una buena opcion para linux, lo tengo instalado en el Ubunto y se ha portado muy bien y tiene la ventaja de mostrarte los directorios y archivos a un lado de la ventada en la que programas, ayuda mucho cuando tines muchos archivos.
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #21 (permalink)  
Antiguo 22/12/2006, 16:38
Avatar de BLEND  
Fecha de Ingreso: marzo-2006
Mensajes: 97
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: reconocer tecla pulsada

Gracias por el dato mi hermano
__________________
.·´¯`·-> (3l£NÐ <-·´¯`·.
  #22 (permalink)  
Antiguo 22/12/2006, 17:39
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: reconocer tecla pulsada

Cita:
Iniciado por _Lucifer_ Ver Mensaje
El KDevelop tambien es una buena opcion para linux, lo tengo instalado en el Ubunto y se ha portado muy bien y tiene la ventaja de mostrarte los directorios y archivos a un lado de la ventada en la que programas, ayuda mucho cuando tines muchos archivos.
Creo que cualquier IDE que se precie hace lo mismo... No creo que sea un criterio para comparar IDEs.
  #23 (permalink)  
Antiguo 31/12/2006, 19:13
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: reconocer tecla pulsada

Cita:
Creo que cualquier IDE que se precie hace lo mismo... No creo que sea un criterio para comparar IDEs.
Simplemente es una opinion acerca de los IDE's que he usado...
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #24 (permalink)  
Antiguo 02/01/2007, 08:15
 
Fecha de Ingreso: diciembre-2004
Ubicación: Iquique, Chile
Mensajes: 150
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: reconocer tecla pulsada

Holas;

Tengo los dos instalados Dev-C++ y Code::Blocks, he compilado los mismos programas y no encuentro diferencia de compilados, los dos a la misma velocidad, Code::Blocks un poquitito más rápido, pero nada mas.

Aparte que los dos usan mingw32, Dev-C++ no se encuentra paralizado en absoluto, la última versión que baje la semana pasada es lejos la más rapida de las otras versiones para compilar. En Code::Blocks tal vez existan mejores opciones y esten mejor distribuidas, pero nada más.

En configurar el Editor en Code::Blocks deja bastante que desear es mucho mejor en Dev-C++, de la misma forma en autocompletar código, mejor en Dev-C++.

Nos vemos.
  #25 (permalink)  
Antiguo 02/01/2007, 14:48
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: reconocer tecla pulsada

Cita:
Iniciado por nostromo_ Ver Mensaje
En configurar el Editor en Code::Blocks deja bastante que desear es mucho mejor en Dev-C++, de la misma forma en autocompletar código, mejor en Dev-C++.
Eso es pura estética. Tal cual viene Code::Blocks por defecto me gusta bastante.

Ahora, lo importante son otras cosas. Dev-C++ tiene una multitud de bugs relacionados con el debugging (al menos de C++).

Se cuelga, pierde variables, no se da cuenta de que ha terminado el proceso...
  #26 (permalink)  
Antiguo 02/01/2007, 15:07
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: reconocer tecla pulsada

concuerdo, para depurar dev-cpp es malisimo. nunca pude depurar bien una aplicaicon simple usando el dev-cpp.
Con el codeblocks pues tampoco era perfecto, pero hacia un MEJOR trabajo ayudando al depurado de programas como dice Max en C++ principalmente.

Saludos
  #27 (permalink)  
Antiguo 04/01/2007, 01:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: reconocer tecla pulsada

Cita:
Iniciado por Instru Ver Mensaje
Para que quieres tener los 2?
Primeramente no usan gcc como tal aunque la base sea esta. El nombre del compilador que usan es mingw32(que es un port de gcc para windows).
Dev-Cpp y Code::blocks usan el mismisimo mingw32, igualito. El codeblocks tiene lo que dev-cpp te peude dar y un poco mas.

Para que quieres los 2?

Saludos
yo creo que seria una buena idea tener los 2. Ya que code::blocks puede usar varios compiladores, entre ellos el compilador MS Visual C++ (con el toolkit 2003), y te podria servir para comparar algunas cosas y decidir cual te gusta mas.

De todas formas, si trabajas bajo windows, yo creo que la opcion ideal es usar el Visual C++ 2005 Express Edition, gratis y mejor que los demas. (http://msdn.microsoft.com/vstudio/ex...c/default.aspx)


Por cierto, pudiste resolver el problema inicial de la tecla pulsada? que libreria usaste por fin?

saludos,
  #28 (permalink)  
Antiguo 15/05/2010, 10:50
 
Fecha de Ingreso: noviembre-2008
Ubicación: Guadalajara, Concepcion de Buenos Aires, Mexico
Mensajes: 60
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: reconocer tecla pulsada

con este programa puedes obtener el codigo de tecla

Código:
#include<stdio.h>
#include<conio.h>

main(){
       int op;
       do{
       op=getch();
       printf("%i\n",op);
       }while(op != 174126541);
       }
a op se le asignara un codigo, ejecuta el programa y presiona una tecla y te imprimira en pantalla la tecla presionada

PARA LEER un F1, F2, etc, se usan dos getch():

Código:
#include<stdio.h>
#include<conio.h>

main(){
       int op;
       do{
       getch();op=getch();
       printf("%i\n",op);
       }while(op != 174126541);
       }
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:15.