C/Visual C - scanear ent por teclado solo durante v de tiempo

 
Vista:

scanear ent por teclado solo durante v de tiempo

Publicado por MANU DICE... (2 intervenciones) el 04/03/2007 22:48:40
Hola, necesito escanear una entrada por teclado, pero solo durante la duracion de una ventana de tiempo o retardo. El problema es que con un for o while usando kbhit(), no me continua el contador, ya que espera dicha entrada. ¿hay alguna funcion que me pueda ser util?
Trabajo con Borland TC v5.
Este {NOVATO} os da las gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:scanear ent por teclado solo durante v de tiemp

Publicado por Nelek (816 intervenciones) el 05/03/2007 07:36:44
Hola,

Por que no pruebas poniendo la captura del teclado dentro de un "IF" que compruebe el estado de una variable intermedia y esa variable intermedia la controlas desde un timer de tiempo "V" ?

Es decir:

if (captura == true)
{
//haz lo que quieras
}

void ControlMetodo ( )
{
captura = true;

//Aqui el timer con tiempo V que hace captura = false;
}

Nota: No he sido mas especifico con lo del Timer porque yo programo bajo VC++ y no se hasta que punto seran parecidos. En VC++ 6 serian:

UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

y

BOOL KillTimer( int nIDEvent );

Donde ambas pertenecen a la clase CWnd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:scanear ent por teclado solo durante v de tiemp

Publicado por MANU DICE (2 intervenciones) el 05/03/2007 17:03:14
int retardo(int t);

void main(void)
{
char c='.';
long tiempo=100000;
clrscr();
fflush(stdin);
fflush(stdout);
while(tiempo>0){
if(kbhit()){
c=getch();
break;
}
tiempo--;
}
printf("\n%c\n\n",c);
system("pause");
}
// Rusticamente esto me vale, gracias por tu ayuda Nelek.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar