我想将字符串转换为一系列密钥代码,以便我可以通过PostMessage将它们发送到控件。我需要模拟实际的键盘输入,我想知道一个巨大的switch语句是否是将字符转换为正确的键码的唯一方法,或者是否有更简单的方法。
====
得到我的解决方案 - http://msdn.microsoft.com/en-us/library/ms646329(VS.85).aspx
VkKeyScan将返回任何角色的正确密钥代码。
(是的,我不会这样做,但是在进行自动化测试时,确保键盘按下得到正确响应,它可以正常工作)。
答案 0 :(得分:2)
答案 1 :(得分:0)
对于A-z 1-9,您可以尝试将char构建为键码字符串string.Format("KEY_KEY_{0}", char.ToString())
,然后使用Enum.Parse提取Enum值,但这有点像cludge
或者查看专家性别变化的How to convert uint keycode to Keys enum,然后解决棘手的问题。
我同意switch语句有点糟糕
答案 2 :(得分:0)
得到我的解决方案 - http://msdn.microsoft.com/en-us/library/ms646329(VS.85).aspx
VkKeyScan将返回任何角色的正确密钥代码。
(是的,我不会这样做,但是在进行自动化测试时,确保键盘按下得到正确响应,它可以正常工作)。
答案 3 :(得分:0)
向窗口发送一串击键的更可靠的等待是使用SendKeys类
System.Windows.Forms.SendKeys("This is a test");
System.Windows.Forms.SendKeys("This is sends CTRL+J ^j");
这将更加可预测,并且可以为您节省一些时间。