C#を使用してキーストロークを送信する最速の方法は何でしょうか。現在、とを使用SendKeys.Send()
しSendKeys.SendWait()
てい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()
で、ループの外側で2番目のテストを実行すると、次のようになります。
Result 3: 46278 milliseconds
コードのこれらの変更によって速度が大きく異なるのはなぜだろうと思っていました。
私のアプリケーションは多くのことを行うので、多くのキーストロークを送信するより速い方法があるかどうかも疑問に思いました。(これらのテストは非常に遅いネットブックで行われました)
ありがとう!