FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Detectar pulsación de tecla sin imprimirla en pantalla (sin Libreria conio)
Hola a todos
Es mi primer post por lo tanto deseo presentarme Soy Daniel tengo 55 años y autodidacta en Java y C++.- ........................... char primer[10],segundo[10],apellido[10]; cout << "Ingrese primer nombre(maximo 10 caracteres).:"; cin.gets(primer); cout << "Ingrese segundo nombre(maximo 10 caracteres):"; cin.gets(segundo); ........................... Bueno la cuestión es con en el ingreso de datos, lo que pretendo es que al ingresar por Ej. 10 caracteres en "Ingrese primer nombre..:" automáticamente se pase a "Ingrese segundo nombre..:" y así sucesivamente.- Para ello creo que la única manera es hacer un bucle, pero quiero hacerlo sin la biblioteca "conio" con el uso de "getch()".- La pregunta es: alguien conoce alguna función que detecte la tecla presionada sin imprimirla en pantalla...? Programa en Dev-C++ - C++ Un gran abrazo Daniel |
#2
|
||||
|
||||
intento de solucion
pues amigo no es muy facil de entender lo que pides, este es mi intento
getch() //funcion que retorna el valor de la tecla presionada gotoxy(int x, int y) // requiere incluir conio.h funcion que posiciona el cursor en el shell (25 x 80 si mal no recuerdo) tecla presionada se devuelve en forma ascii, o sea si presionamos la A getch() devuelve 23 orx 'A' y se imprime en pantalla pero.. señor... ud no quiere que se imprima en pantalla segun entiendo. entonces vamos a tener ke ir a borrarlo, retrocediendo una posicion y escribiendo un blanco 32 orx ' ' y retrocediento (si otra vez) una posicion. Magia, es mas rapido que la vista, ni siquiera vimos que apretamos. el codigo seria algo asi Código:
ch=getch(); gotoxy(wherex()-1,wherey()); printf(" "); gotoxy(wherex()-1,wherey()); para hacerlo iterativo. por ejemplo. capturar un string de 15 caracteres Código:
printf("ingrese el nombre (15 caracteres)"); char str[15]; for(int i=0;i<15;i++){ str[i]=getch(); gotoxy(wherex()-1,wherey()); printf(" "); gotoxy(wherex()-1,wherey()); } Si vamos a trabajar con DOS, hay ke utilizar muuuuucho el gotoxy(int x,inty) recomiendo que se mude a una interfaz de windows ya que lleva mucho tiempo crear un programa cuya interfaz "grafica" es un shell (ventanita de DOS o terminal), y distrae al programador del verdadero problema, los requisitos del software Última edición por grandmasterdari fecha: 12-01-2008 a las 00:27:57. |
#3
|
|||
|
|||
Investiga en este foro sobre Hook de teclado
Buenos dias,
hace tiempo hice un software para keylogger, con la funcion, pulsaba la tecla, y quedaba "atrapada en el hook," y yo tenia con codigo, que mostrarla. Si estas interesado responde este hilo, o mira las solciones en los foros, busca hook de teclado. Tengo el codigo en C++, contactame para enviartelo, Gracias. |
#4
|
|||
|
|||
Hola JuanErasmo
Baya si me interesa, lo único que espero es poder entenderlo ya que hace muy poco comencé con C++.- Me gustaría que lo pongas aqui para beneficio de todos de lo contrario este es mi correo:rdvsm316@wanadoo.es Un muchas gracias JuanErasmo Un gran abrazo a todos Daniel Última edición por Daniel316 fecha: 12-01-2008 a las 20:06:32. Razón: Me olvide de poner el asunto |
#5
|
|||
|
|||
Sin Conio ni el Api de Windows
Hola
Un muchas gracias grandmasterdari Evidentemente la alegría del post de JuanErasmo me hizo apurarme a responder.- Lo que yo deseo es capturar la pulsación de las teclas sin imprimirla en pantalla, sin hacer uso de Conio ni el Api de Windows (sera posible...?), si no obtengo una respuesta satisfactiria lo voy a hacer con PDCurses, lo malo de esta librería es que no puedo encontrar ninguna documentación en Español.- Chau Daniel |
#6
|
|||
|
|||
asi es como se hace, disculpa la demora.
Código:
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled) { if (Msg.message == WM_HOTKEY) { // if( (LOWORD(Msg.lParam) == MOD_SHIFT ) && (HIWORD(Msg.lParam) == 88) ){ if( (LOWORD(Msg.lParam) == MOD_SHIFT ) && (HIWORD(Msg.lParam) == VK_F2) ){ UnregisterHotKey(Application->Handle, GlobalAddAtomA("MiHotKeyXM")); keybd_event(VK_F2,0,0,0); |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Eliminar Pulsación tecla Supr | javiermorales | OOP | 22 | 22-04-2010 00:27:23 |
esperar pulsacion de tecla | brandolin | Varios | 1 | 15-03-2005 02:38:54 |
Capturar pulsación de tecla | quade | C++ Builder | 4 | 03-06-2004 18:31:20 |
Controlar pulsacion de una tecla desde toda la aplicacion | Sick boy | OOP | 5 | 21-05-2004 17:30:48 |
Simular pulsacion de tecla | acrophet | Varios | 1 | 28-10-2003 19:35:41 |
|