C++ Builder Snippets  

'Klartextnamen' der gedrückten Taste ermitteln:
 
//---------------------------------------------------------------------------
// Funktion GetKeyName() liefert den "Klartextnamen" der Keyboard-Taste mit
// dem im Parameter wVirtualKey virtuellen Code. Der zurückgegebene String
// ist abhängig von der Windows-Sprachversion.
// Hinweis: virtueller Code der Tasten wird in VCL den OnKeyDown/OnKeyUp
// Ereignisbehandlungsroutinen im Parametr Key übergeben.
//---------------------------------------------------------------------------
// Beispielaufrufe:
//
// GetKeyName(VK_CONTROL) liefert den String "STRG" zurück
// GetKeyName(VK_SHIFT)   ->                 "UMSCHALT"
// GetKeyName('A')        ->                 "A"
// S. auch Bsp.-Projekt Erstellen, Auslesen und Ändern von Desktop-Verknüpfungen
//---------------------------------------------------------------------------
AnsiString GetKeyName(WORD wVirtualKey)
{
  char KeyName[256];
  int ilScanCode = MapVirtualKey(wVirtualKey, 0) << 16;
  if(ilScanCode != 0)
  {
    GetKeyNameText(ilScanCode, KeyName, 255);
    return AnsiString(KeyName);
  }
  else return EmptyStr;
}

//---------------------------------------------------------------------------
// GetKeyVirtualCode() liefert den virtuellen Tastencode zum übergebenen
// Tastennamen (Umkehrfunktion zu GetKeyName())
//---------------------------------------------------------------------------
WORD GetKeyVirtualCode(AnsiString slValue)
{
  for(WORD ilKey = 8; ilKey < 256; ilKey++)
    if(GetKeyName(ilKey) == slValue)
      return ilKey;
  return 0;
}



© '99-2001 by S. Kreutzmann