Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2008
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 20
elcigarra Va por buen camino
programa residente en memoria

Estimados.

Estoy haciendo una aplicación de base de datos locales en Delphi 7. El usuario realiza otras operaciones en el pc y en determinado momento ingresa en una base de datos uno o dos datos.

Lo que megustaría hacer (aunque no sé si es posible) es un software que quede residente en memoria y cada vez que el usuario va a ingresar esos datos (teniendo aún el software de un tercero abierto) apreta algo así como unas hot keys de tipo "Ctrl F4", por decir algo, lo que provoca que se abre una ventanita con el formulario deonde ingresar los datos.

El problema que me encuentro es como hacer para que un pequeño programa (que se puede cargar al iniciar el PC), quede en memoria y se active con alguna combinación de teclas definida.
Responder Con Cita
  #2  
Antiguo 27-04-2008
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 20
elcigarra Va por buen camino
digamos que para hacerlo más fácil, no tendría problema en dejar residente un programa con un ícono en el sector tray. El tema sería cómo abrir el programa con una combinación de teclas, o dicho de otra forma, como programarlo para que responda en determinada forma cuando esas teclas se pulsen en cualquier momento.

Recuerdo hace unos 25 años existía un programita en pascal que dejaba residente un sonido para cada tecla y cuando el usuario escribia en cualquier programa las teclas hacían ruido. Creo que en aquel momento hacían uso de un método "keep", si mal no recuerdo. El código de un ejemplo como ese que funcione en Delphi me serviría como punto de partida.
Responder Con Cita
  #3  
Antiguo 28-04-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Estamos hablando de la prehistoria de la programación actual. Los famosos TSR (Terminate and Stay Resident) de los tiempos de DOS. Este tipo de programas se hicieron famosos precisamente por una creación de Borland, el famosos SideKick. Recordemos que en tiempos de DOS no existia (y creo que aún en Windoz) eso de multitasking, el SO se empeñaba en ser monotareas y no podía ejecutarse más de un programa a la vez.

En este tipo de programas se partía del siguiente pseudocódigo:

Código:
1.- Preparar lo que se iba a hacer
2.- Definir un procedimiento que queramos ejecutar cuando se pulse una tecla o pase alguna otra cosa (un enfoque primitivo de los eventos)
3.- Interceptar la interrupción del DOS o BIOS para ejecutar lo que definimos en el paso DOS (normalmente era una tecla mediante algun Int13 o Int24 según el caso)
4.- Terminar nuestro programa y usar Keep para que quedara latente en memoria.
Aquí la clave eran las interrupciones tanto de BIOS como DOS que eran las únicas formas de entrometerse entre un programa y el sistema operativo o incluso el hardware. Cabe mencionar que en aquellos tiempos esto solo se podía hacer en C o en Pascal gracias al soporte de ensamblador de este último.

Con la llegada de Windows aparecieron los famosos Hooks y la API del mismo que no es otra cosa que una versión con esteroides de las antiguas interrupciones.

Lo que pretendes hacer requiere que te metas directamente con la API de windows, programar un hook del teclado para que tu programa sea el primero en procesar cualquier evento de teclado antes que la aplicación del "tercero" y luego actuar en consecuencia. Aunque personalmente lo veo redundante porque al flojo del usuario le basta con hacer un click en la barra de tareas para cambiarse a tu aplicación, lo cual me parece que es menos esfuerzo que presionar dos teclas a la vez.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 28-04-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por elcigarra Ver Mensaje
...El tema sería cómo abrir el programa con una combinación de teclas, o dicho de otra forma, como programarlo para que responda en determinada forma cuando esas teclas se pulsen en cualquier momento.
Para eso basta con registrar la tecla a nivel de todo el sistema.
Revisa la ayuda de la API RegisterHotKey. Seguro que si buscas aquí en el foro sobre esta API también encuentras ejemplos, ya que hemos hablasdo más veces de ella.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 28-04-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por ejemplo, este o este, aunque hay más...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 28-04-2008
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 20
elcigarra Va por buen camino
Gracias, eso buscaba
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
mi programa ocupa DEMASIADA memoria unreal4u Varios 2 24-04-2005 04:42:05
programa residente en memoria Jorge Ramirez Varios 1 25-04-2004 06:10:49
Programa residente en memoria naker Varios 2 10-11-2003 00:35:10
programa residente en barra de tareas!!! jfontane Varios 1 23-08-2003 00:26:51
Programa de Consola en memoria.... jcgarcia Varios 2 04-06-2003 02:05:51


La franja horaria es GMT +2. Ahora son las 11:31:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi