jak przekonwertować liczby paramL na znaki Ansi?

0

Hook na klawiature daje mi znaki MessageBuffer.paramL i nie wiem jak te liczby przełożyć na znaki klawiatury (duże, małe literki itd.). Jak robie chr(MessageBuffer.paramL) to zamiast cyftr na klawiaturze numerycznej dostaję małe literki. Ktoś wie jak sobie z tym poradzić?

0

Hi! Też kiedyś miałem, ten problem, więc poczytałem sobie Win32.hlp :D

    Buffer := PEventMsg(lParam)^;
    b:=buffer.paramL mod 256;
    for i:=0 to 255 do
     begin
      a:=VkKeyScan(chr(i));
      if (lo(a)=b)and(hi(a)=shft+2*alt+4*ctrl) then
       s:=chr(i);
     end;

Co prawda nie jest to chyba najbardziej optymalne wyjście, ale działa :D
Aha, mały komentarz:
shft,alt,ctrl : liczby 1..0, ktore informują, czy shift, alt lub control są naciśnięte, s to znak którego szukamy...

Aha, i czy shift, control czy alt jest nacisnięty, możemy dowiedzieć się dzięki funkcji GetKeyState;

1 użytkowników online, w tym zalogowanych: 0, gości: 1