Cita:
Empezado por kanvictor
...Bueno hoy estaba muy divertido en mi casa, Mar del Plata, hacia calor asi que me decidi a entretenerme ...
|
Lindo día en tu ciudad, calor, vallas, policías, militares y a la espera del kaiser...
Tu problema es que tu código toma el KeyDown y el KeyUp, por eso lo ves repetido.
Una de las cosas que podrías hacer, es definir la constante LLKHF_UP:
Código Delphi
[-]
const
LLKHF_UP = $00000080;
Y discriminar uno de los momentos:
Código Delphi
[-]
if (PKbdHookInfo(LParam).Flags and LLKHF_UP = 0) then
Resumiendo:
Código Delphi
[-]
const
LLKHF_UP = $00000080;
...
function KbdHook(Code: Integer; WParam, LParam: DWORD): HHook; stdcall;
begin
if Code = HC_ACTION then
with PKbdHookInfo(LParam)^ do
if (Flags and LLKHF_UP = 0) and ( vkCode in [ord('A')..ORD('Z'), ord('0')..ORD('9'), 8]) then
begin
form1.Edit1.Perform(WM_CHAR,VKCODE,0);
Result:=1;
end
else
Result := CallNextHookEx(Hook, Code, WParam, LParam);
end;
Saludos!