Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Lokalisierter Name einer Taste (https://www.delphipraxis.net/79396-lokalisierter-name-einer-taste.html)

Prototypjack 21. Okt 2006 16:50


Lokalisierter Name einer Taste
 
Moin!

Ich suche eine Möglichkeit die Namen zu VirtualKeys zu bekommen.
Das es geht weiss ich, nur nicht wie.

Ich bin durch Suchen auf die Funktion GetKeyNameText gestossen, kann sie aber nicht wirklich zum laufen bringen, und habe langsam das Gefühl, das sie nicht macht was ich Suche.

Nochmal zur verdeutlichung:

Ich brauche eine Funktion die bei VK_CAPITAL(z.B.) den lokalisierten Namen liefert, also (auf einem deutschen System) "FESTSTELLTASTE".

Ich hoffe ihr könnt mir helfen.
Gruß,
Max

Reinhard Kern 22. Okt 2006 13:51

Re: Lokalisierter Name einer Taste
 
Hallo,

so etwas wie einen lokalisierten Tastennamen gibt es nicht, jedenfalls nicht genormt, jeder bezeichnet das nach eigenem Geschmack.

Die Bezeichnung "Feststelltaste" ist ohnehin nicht korrekt, es ist ja nur eine von mehreren Feststelltasten auf der PC-Tastatur (NumLock,ScrollLock).

Je nach Geschmack wird auch nicht alles übersetzt, mir ist jedenfalls Esc geläufiger als Fluchttaste, und auf eine Fenstertaste kann ich auch verzichten.

Gruss Reinhard

marabu 22. Okt 2006 14:41

Re: Lokalisierter Name einer Taste
 
Hallo Max,

probiere es mal damit:

Delphi-Quellcode:
uses
  Windows;

function GetKeyName(key: Word): String;
var
  scanCode: Integer;
  keyName: array [0..255] of Char;
begin
  ScanCode := MapVirtualKey(key, 0) shl 16;
  SetString(Result, KeyName, GetKeyNameText(scanCode, KeyName, SizeOf(KeyName)));
end;
Grüße vom marabu

Prototypjack 24. Okt 2006 15:07

Re: Lokalisierter Name einer Taste
 
Zitat:

Zitat von Reinhard Kern
Hallo,

so etwas wie einen lokalisierten Tastennamen gibt es nicht, jedenfalls nicht genormt, jeder bezeichnet das nach eigenem Geschmack.

Die Bezeichnung "Feststelltaste" ist ohnehin nicht korrekt, es ist ja nur eine von mehreren Feststelltasten auf der PC-Tastatur (NumLock,ScrollLock).

Je nach Geschmack wird auch nicht alles übersetzt, mir ist jedenfalls Esc geläufiger als Fluchttaste, und auf eine Fenstertaste kann ich auch verzichten.

Gruss Reinhard

Falsch.

Danke trotzdem ihr beiden,
ich hatte die letzten Tage keine Zeit hier rein zu sehen,
konnte es aber dennoch lösen. Meine Lösung sieht ein bischen anders aus, funktioniert jedoch auch.

Für die interessierten:
Delphi-Quellcode:
function GetKeyName(const ACharCode: Integer): String;
var
  KeyName: array [0..255] of Char;
  VirtualKey: Cardinal;
begin
  VirtualKey := MapVirtualKeyW(ACharCode, 0);
  GetKeyNameText((VirtualKey shl 16), @KeyName, SizeOf(KeyName));
  Result := KeyName;
end;
Danke für eure Mühen ;)
Gruß,
Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz