我如何以编程方式知道是否'@'
需要在带有Alt Gr或Shift按住的文本框中输入一个字符?
这是清单Alt Gr:² ³ { [ ] } \ @ € ~ | µ
为更长的名单Shift:°!"§$%&/()=?*'>;:_
,信件和更多
Char.IsUpper(...)
用字母帮助我。但是剩下的我该如何解决呢?我希望能够正确检查它们,如果可能的话,我想让系统为我做。
最后,我将通过发送这些按键keybd_event
。
(我使用WinForms。)
我想到了。VkKeyScan是密钥。
(VkKeyScanEx用于KeyboardLayouts等。)
一些测试代码:
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern short VkKeyScan(char ch);
static void Main(string[] args)
{
char[] chars = "²³{[]}\\@€~|µ °!`\"§$%&/()=?*'>;:_".ToCharArray();
Console.WriteLine("char\talt\tcontrol\tshift" + Environment.NewLine + "-----------------------------");
for (int i = 0; i < chars.Length; i++)
{
char ch = chars[i];
short vksc = VkKeyScan(ch);
bool alt = (vksc & 1024) == 1024;
bool control = (vksc & 512) == 512;
bool shift = (vksc & 256) == 256;
Console.WriteLine(ch + "\t" + alt + "\t" + control + "\t" + shift);
}
Console.ReadKey();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句