我想知道使用 C# 发送击键的最快方法是什么。目前我正在使用SendKeys.Send()
and SendKeys.SendWait()
with SendKeys.Flush()
.
我正在使用以下代码来计算它们两个工作所需的时间:
Stopwatch sw1 = new Stopwatch();
sw1.Start();
for (int a = 1; a <= 1000; a++)
{
SendKeys.Send("a");
SendKeys.Send("{ENTER}");
}
sw1.Stop();
和:
Stopwatch sw2 = new Stopwatch();
sw2.Start();
for (int b = 1; b <= 1000; b++)
{
SendKeys.SendWait("b");
SendKeys.SendWait("{ENTER}");
SendKeys.Flush();
}
sw2.Stop();
2的结果是:
Result 1: 40119 milliseconds
Result 2: 41882 milliseconds
现在,如果我们将SendKeys.Flush()
第二个测试放在循环之外,我们会得到:
Result 3: 46278 milliseconds
我想知道为什么代码中的这些更改会使速度大不相同。
我还想知道是否有一种更快的方式来发送许多击键,因为我的应用程序经常这样做。(这些测试是在一个非常慢的上网本上完成的)
谢谢!