Ascii 2 Text

0

Długo szukałem rozwiązania tego problemu, jednak niewiele na ten temat znalazłem, zarówno na google, jak i w serwisie. Pytanie więc brzmi: jak zamienić kod klawisza na jego nazwę? Np. dam 32, a zwróci mi 'Spacja'. Wiem, że to możliwe, bo w niektórych grach widziałem teksty typu: 'Press Spacja to...', więc musi być jakaś funkcja windowsowa, która to umożliwia. Szukałem w win sdk po nazwach i znalazłem coś, co mogloby pasować, funkcja: GetKeyNameText(). Jednak dostaję pusty ciąg znaków.

// Dzięki, zaraz sprawdzę. Że po angielsku, to już nie ważne, byleby działało. A jeśli ktoś zna na wyciągnięcie polskich, to też będę wdzięczny.

// No cóż, nie działa to najlepiej :-(. Przy 13 (enter) pokazuje '=', przy 27 (escape) pokazuje '[', przy 65 ('A') - F7, natomiast przy VK_F1 nic nie pokazało.

0
var
  Nazwa: array [0..100] of Char;
  i: Integer;
begin
  for i := 0 to $FF do
    if GetKeyNameText(i shl 16, @Nazwa, 50) >0 then
      Memo1.Lines.Add(Nazwa+' '+IntToStr(i));
end;

Ale u mnie tylko po angielsku :(

0

Jestem pewien że mozliwe jest pobranie polskiej nazwy, a to przez to że w tablicy znaków jest w miare poprawna nazwa, ale w samej tablicy znaków niegdzie nie jest to zapisane, ale jaka funkcje wywołuje to ja już naprawdę nie wiem

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