Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como permitir que des`pues de registar un hotkey, continue hacia otra aplicación...? (https://www.clubdelphi.com/foros/showthread.php?t=30582)

JuanErasmo 10-04-2006 19:49:26

Como permitir que des`pues de registar un hotkey, continue hacia otra aplicación...?
 
Buenas tardes tal vez la pregunta no es clara pero me fué dificil formularla....
El problema es el siguiente....
utilizo el siguiente codigo para registar un Hotkey por ejemplo la barra espaciadora :
Cita:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnMessage = AppMessage;
//
// 79 es el código ASCII de la letra "O". No he conseguido encontrar la función
// correspondiente a "Ord" (en Delphi) aquí en C++ Builder. He probado con
// Integer("O") y con Cardinal("0"), pero, no funciona, así que al cabo he optado
// por pasar como tercer parámetro de "RegisterHotKey" el número 79, que ya sabes
// lo que quiere significar. ;)
//
RegisterHotKey(Application->Handle, GlobalAddAtomA("MiHotKey2"), 0 , 32);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_HOTKEY)
{
if ( (LOWORD(Msg.lParam) == MOD_CONTROL) && (HIWORD(Msg.lParam) == 32) )
ShowMessage("Pulsaste barra espaciadora");
}
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
UnregisterHotKey(Application->Handle, GlobalAddAtomA("MiHotKey"));
}
funciona perfecto...cuando presiono "espacio", si estoy por ejemplo en word, mi aplicación detecta el evento...pero en word no escribe el espacio.....
es decir no se libera la tecla mientras esta en word, y el evento de teclado no llega a word.....
COmo hago para que mi aplicación sepa que tecla se toco y ademas, en la aplicación word (p .ej.) tambien llegue normalmente??
Gracias por su ayuda!
Nota:
Tambien he intentado mandar un evento de teclado desde el codigo a la aplicacion con postmessage, pero cae en un loop....
Gracias

delphi.com.ar 10-04-2006 19:59:43

Tienes que "registrar" un hook de teclado. Te recomiendo buscar en el foro al respecto, ya se ha hablado en mas de una ocasión.

Saludos!


La franja horaria es GMT +2. Ahora son las 05:51:15.

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