如何将Char转换为.Net中的Keycode?

时间:2008-11-27 00:04:28

标签: c# winapi

我想将字符串转换为一系列密钥代码,以便我可以通过PostMessage将它们发送到控件。我需要模拟实际的键盘输入,我想知道一个巨大的switch语句是否是将字符转换为正确的键码的唯一方法,或者是否有更简单的方法。

====

得到我的解决方案 - http://msdn.microsoft.com/en-us/library/ms646329(VS.85).aspx

VkKeyScan将返回任何角色的正确密钥代码。

(是的,我不会这样做,但是在进行自动化测试时,确保键盘按下得到正确响应,它可以正常工作)。

4 个答案:

答案 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");

这将更加可预测,并且可以为您节省一些时间。