【发布时间】:2009-06-25 21:26:03
【问题描述】:
我有一个 winforms 应用程序,我需要在其中捕获键盘输入并将其存储在脚本中。然后可以使用 IronPython 重放该脚本以自动化应用程序。我目前对此的看法是监听 KeyPress 事件并使用 SendKeys.Send() 重新发送按下的字符。要使用修饰符(alt、ctrl)处理输入,我会监听 KeyDown 事件,但在这里我不知道如何表示脚本中按下的键。这就是我想做的:
public void TextBox_KeyDown(KeyEventArgs e)
{
Script.AddStatement(string.Format("SendKeys.Send('{0}')", ????));
}
我是否必须手动从 KeyEventArgs 创建一个 SendKeys 可以理解的字符串?
例如 shift+A,shift+B 变为 SendKeys.Send("+(AB)")。详情来自MSDN。
还有其他方法吗?也许存储 KeyEventArgs.KeyData 并创建一个新的 KeyEventArgs 实例并以某种方式发送?
【问题讨论】:
-
Script是什么类型的?
-
什么是 SendKeys.Send() 期望作为参数?也许 (char)e.KeyCode 已经很好了...
标签: c# winforms ironpython