[英]c# ascii to keycode?
[DllImport("user32.dll")]
private static extern short VkKeyScan(char ch);
set = set + "\r\n";
int txL = set.Length;
for (int o = 1; o < (txL); o++)
{
short vkey = VkKeyScan(set[o]); //MessageBox.Show(vkey.ToString());
Keys retval = (Keys)(vkey & 0xff);
int modifiers = vkey >> 8;
if ((modifiers & 1) != 0) retval |= Keys.Shift;
if ((modifiers & 2) != 0) retval |= Keys.Control;
if ((modifiers & 4) != 0) retval |= Keys.Alt;
}
该函数将标准的字母和键盘布局转换为KeyCode,我如何将所有其他Unicode转换为中文以及ASCII转换为符号? 它对于班次键也不起作用:“!,@,#,$ ...”那么,如何结合ALT和其他键,然后转换为KeyCode呢? 例如ALT+33 = "!" and KeyCode = 0xF0
ALT+33 = "!" and KeyCode = 0xF0
有许多没有相应键的Unicode字符。 例如,我有一个105键的键盘,而大约有一百万个不同的Unicode字符。 同样,键码-字符映射取决于键盘布局。 因此,没有通用的答案可以解决您的问题。
ALT代码只是Unicode符号十六进制值的十进制表示。 例如,如果您查看官方图表,您将看到!
的值!
如果将其从十六进制转换为十进制,则为0021
则得到33
,这就是alt + numPad-3 + numPad-3的来源。
通过查看来自http://www.unicode.org/charts的适当的PDF,可以获得所有可能的Unicode密钥代码值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.