La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3735 - INFO SOBRE COMO DEJAR UN PROGRAMA EN C RESIDENTE EN MEMORIA
Autor:  Pablo Fuente
Como ya leiste en el título necesito información sobre como dejar un programa hecho en Borland C++ 3.0, residente en memoria.
Además quiero saber como se detecta que se esta presionando una tecla determinada en el teclado; sin usar la funcion getch(); es decir sin que el programa se quede "esperando" a que aprete una tecla. También necesito los códigos de las teclas, ya que no se donde buscarlos.
Desde ya MUCHAS GRACIAS.
Pablo

  Respuesta:  José Luis De la Cruz Lázaro
Hola
Sobre como dejar un programa residente en memoria, he visto una rutina muy buena en www.ciudadfutura.com/cworld , si quieres capturar una tecla sin poner pausa, pues el camino mas corto sería con la función kbhit(), que retorna un número si presionas una tecla y cero si no presionas, y no pone una pausa, para saber que tecla se presionó, puedes utilizarla con getch(), esto sería como:

if( kbhit() ) tecla = getch();

otra forma sería utilizando las funciones del bios.h como bioskey...

Por ultimo busca los caracteres ACSII y códigos de tecla extendidos en el apéndice de cualquier lbro de programación, pero si quieres una rutina que capture todas las teclas del teclado, incluyendo SHIFT, ALT , CTRL escríbeme...
Espero te sirva me ayuda...
adiós...

  Respuesta:  J RC
Tus problemas lo solucionan las interrupciones de MSDOS. Para saber si se ha pulsado una tecla, debes cambiar el vector de interrupciones para que salte a tu rutina, comprobar que tecla se ha pulsado, y llamar a la rutina de interrupcion por defecto para seguir el curso normal. Existe una interrupcion para dejar un programa residente en memoria, que puedes llamarla desde C. Lo mejor es que consigas un libro, hay uno muy bueno para estos temas llamado "C: Guia para usuarios expertos", de McGraw Hill.