La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2507 - INSTALA EN MEMORIA UN RPGRAMA
Autor:  alejandro galban
Hola mi duda y pregunta es como puedo instalar en memoria un programa hecho en c++ 3.0 , es que debo instaler en memoria el prograa para que en cualquier momento que yo este trabajando en ms-dos o en windows, y que yo resione alguna combinacion de teclas este programa se ejecute automaticamente. tambien el problema surge de cuando quiero hacer un programa que resida en un cd, y que al entrar se ejecute automaticamante.

yo lo unico que se es que hay que utilizar interrupciones pero yo la verdad no se utilizarlas, he leido que me serviria creo la 21h , o no se cual sea, ya que esta me permite accesar en memoria sin que el sistema se de cuenta, y con eso se quitaria el problema de la platforma de windows, ya que este no me permitiria esto segun tengo entendido.

si alguien me pudiera ayudar u orienter se lo agradeceria mucho, gracias.

  Respuesta:  Fabián Andrés Sierra Carvajal
Supón que logras acceder a a la memoria sin que el sistema operativo se dé cuenta.
Ahora bien, ¿cómo haces que lo que esté ahí se ejecute? El único que puede hacer un programa inicie su ejecución es el sistema operativo.
Para DOS, la manera estándar de dejar un programa residente es modificar un vector de interrupción y luego usar la interrupción 32h del DOS para dejarlo en memoria;
en Turbo C y Borland 3.0,esto se hace con la función keep o dos_keep.
En Windows, no hay problemas para que varios programas se ejecuten a la vez,pero no es posible modificar un vector de interrupción. Lo que sí es posible es capturar un evento antes de que lo haga la aplicación que lo llamó, mediante el grupo de funciones de la API Hook. Ve la documentación del SDK. Esto es bastante más difícil de hacer en Borland 3.0, y no es compatible con Windows de 32 bits.
¡Suerte!