Convertir Un Char À Clés
J'ai un char spécial (/@) Que je tiens à les convertir à des Touches.
Je suis actuellement en utilisant ceci :
Keys k = (Keys)'/';
Et pendant le débogage, j'obtiens que k est égal à :
LButton | RButton | MButton | Arrière | type d'Espace - Système.De Windows.Les formulaires.Touches
k du mot de code était censé être 111.
REMARQUE: Le code du travail pour les majuscules telles que :
Keys k = (Keys)'Z';
Dans ce cas, k du code de la clé est de 90, ce qui est ok.
J'essaie de trouver un moyen de convertir les caractères spéciaux pour les Clés. (ou à leur propre code de la clé)
Essayer d'envoyer des clés à l'échelle mondiale à l'aide de :
public static void SendKey(byte keycode)
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
keybd_event(keycode, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event(keycode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
}
SendKey((byte)Keys.{SomethingHere});
Puis-je demander ce que vous essayez de faire avec cette conversion?
OriginalL'auteur user779444 | 2011-06-01
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas lancer de char à Clés. Keys est un des drapeaux de l'énumération qui représente les touches physiques sont pressées sur le clavier. Ce que vous essayez peut-être pas un simple problème à résoudre. Qui peut dire ce que le clavier, l'utilisateur a utilisé et que la cartographie génère ce caractère particulier de l'utilisateur sur le clavier et les paramètres régionaux?
Pouvez-vous être plus précis au sujet de votre but? Êtes-vous essayer d'enseigner à l'utilisateur la façon de taper un caractère spécial ou d'autre chose?
Basé sur votre mise à jour, vous devriez être en utilisant la SendKeys classe.
WOW ça m'a sauvé quelques difficultés et je ne pense pas que ça va marcher parce que je suis de l'envoyer à une autre application qui pourrait avoir protégé lui-même.
Une fois, j'ai fait quelque chose de similaire, mais je voulais juste vous faire savoir que lorsque l'ordinateur est verrouillé, les touches ne passeront pas. Par exemple, si vous souhaitez commencer votre programme d'émulation de touches et verrouillage de l'ordinateur ([touche Windows] + L), il cesserait de fonctionner.
Selon Vano Maisuradze réponse, il est en effet possible de le lancer à partir de char à clés.
OriginalL'auteur plinth
C'est une vieille question, mais j'ai utilisé ceci:
Si la valeur char est un (avec le code 97) puis de les convertir en Un (avec le code de 65 ans) de cartes à Clés.Un et ainsi de suite...
Espère que cela aidera quelqu'un.
OriginalL'auteur Vano Maisuradze
Il devrait fonctionner!
Touches o = (Touches)Enum.Parse(typeof(Touches), ((int)e.KeyChar).ToString());
désolé remplacer e.KeyChar avec un char comme le '/' ou ...
Désolé, toujours avoir LButton | RButton | MButton | Retour | Espace
OriginalL'auteur DeveloperX
Mon chemin ne fonctionne qu'avec les lettres et autres touches.
Cela vous donne de la chaîne de Touches équivalent. Quelque chose comme sortie de
Keys.ToString()
. De sorte que tous nous avons besoin que la conversion des
à ses Touches équivalentes!bonne chance...
OriginalL'auteur ABS
Autant que je sache, il n'y a aucun moyen de la carte de la
Keys
énumérationchar
. On spécifie la clé des codes et des modificateurs, utile pourSystem.Windows.Forms.Control
tandis que l'autre représente un 16 bits de caractères Unicode (U+0000 à U+ffff).À l'ensemble des concepts différents.
OriginalL'auteur InBetween
À mon avis, c'est la solution idéale en termes de lisibilité.
OriginalL'auteur Carlos Alberto Flores Onofre