0

ユーザーの要求に応じて、いくつかのキーボードコマンドを別のプログラムに送信するアプリケーションがあります。そのために、私はhttp://inputsimulator.codeplex.com/を使用します

問題は、時々、キーボードの押下が宛先アプリケーションに受信されないことです。

これをシミュレートするテストプログラムを作成しました。以下を参照してください。いくつかの実行、それは完全に動作し、いくつかの実行は定期的に失敗します。何が原因ですか?どうすればそれを防ぐことができますか?もちろん、1つの方法は、キーボードを押す前に遅延を追加することですが、問題は、どのくらいの遅延が妥当であるかということです。理想的には、遅延を避けたいと思います。

private void SendKeyTest(IntPtr mainWindow, IntPtr receiverWindow)
{
    int index = 0;

    while (!_cancle)
    {
        // Set receiver application as active
        NativeMethods.SetForegroundWindow(receiverWindow);

        // Send the keyboard presses
        InputSimulator.SimulateTextEntry(string.Format("{0,5:N0}\n", index++));

        // Return to the main application
        NativeMethods.SetForegroundWindow(mainWindow);

        Thread.Sleep(500);
    }
}
4

0 に答える 0