C# 如何在.Net中将字符转换为键码?

C# 如何在.Net中将字符转换为键码?,c#,winapi,C#,Winapi,我想将一个字符串转换成一系列键码,这样我就可以通过PostMessage将它们发送到控件。我需要模拟实际的键盘输入,我想知道大规模的switch语句是否是将字符转换为正确键码的唯一方法,或者是否有更简单的方法 ==== 找到我的解决方案- VkKeyScan将为任何字符返回正确的键码 (是的,我一般不会这样做,但在进行自动测试时,并确保键盘按键响应正确,它的工作就足够可靠了)。雷蒙德说这是个坏主意 对于A-z 1-9,您可以尝试将字符构建为keycode字符串string.Format(“KEY

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

====

找到我的解决方案-

VkKeyScan将为任何字符返回正确的键码


(是的,我一般不会这样做,但在进行自动测试时,并确保键盘按键响应正确,它的工作就足够可靠了)。

雷蒙德说这是个坏主意


对于A-z 1-9,您可以尝试将字符构建为keycode字符串
string.Format(“KEY_KEY_{0}”,char.ToString())
然后使用Enum.Parse提取枚举值,但这有点繁琐

或者看看专家的性别变化,然后解决棘手的问题

我同意switch语句有点糟糕

我的解决方案是-

VkKeyScan将为任何字符返回正确的键码


(是的,我一般不会这样做,但在进行自动测试并确保键盘按键响应正确时,它工作得足够可靠)。

向窗口发送一串击键的更可靠的等待是使用SendKeys类

 System.Windows.Forms.SendKeys("This is a test");
 System.Windows.Forms.SendKeys("This is sends CTRL+J ^j");

这将更容易预测,并且会为您节省一些时间。

雷蒙德甚至建议了一种更好的技术。不幸的是,只有当您的窗口肯定有焦点时,它才会起作用。我的不会。