Cita:
Empezado por Neftali [Germán.Estévez]
Este comportamiento es a todas luces "raro".
No da muchos detalles de las 2 aplicaciones, ni de qué teclas quieres desactivar.
Tampoco explicas qué código has utilizado "que no te funciona".
Yo sigo pensando que la solución son los hooks de teclado a nivel de sistema. De otra forma sólo funcionarán cuando tu aplicación esté abierta.
Hay diferentes hilos en los foros que hablan sobre el tema, si buscas encontrarás.
Había hace tiempo un componente de [Roman] que solucionaba esto, y aunque actualmente la web no está disponible, "tirando" de WayBackMachine, se puede acceder a ella.
Revisa este enlace:
https://web.archive.org/web/20050908...m/users/roman/
Y concretamente a este componentes (dentro está la explicación):
https://web.archive.org/web/20050214...oman/hooks.php
|
Transcribo el código que usé para los hooks. A ver si lo hago bien porque no lo he hecho nunca y no se si cumplirá las recomendaciones del foro.
El código lo saqué de Trucos Delphi, si no recuerdo mal.
INTERCEPTAR EL TECLADO MEDIANTE HOOKS
Declarar variables
Código Delphi
[-]var Form1: TForm1;
KBHook: HHook;
function KeyboardHookProc(Code: Integer; WordParam: Word; LongParam: LongInt): LongInt; stdcall;
implementation.
Instalar el Hook
procedure TForm1.FormCreate(Sender: TObject) ;
begin
KBHook:=SetWindowsHookEx(WH_KEYBOARD,@KeyboardHookProc, HInstance, GetCurrentThreadId()) ;
end;
Función que intercepta el teclado
function KeyboardHookProc(Code: Integer; WordParam: Word; LongParam: LongInt) : LongInt;
begin
case WordParam of
vk_Left: begin end;
vk_Right: begin end;
vk_Up: begin end;
vk_Down: begin end;
end;
Result:=0;
end;
Liberar el hook
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
UnHookWindowsHookEx(KBHook) ;
end;