C#プログラムからJavaアプリケーションにキーストロークを送信しようとしています
sendigキーのコードは次のとおりです。
private void SendKeysToWindow(string WindowName, string KeysToSend)
{
IntPtr hWnd = FindWindow(null, WindowName);
ShowWindowAsync(hWnd, SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
SendKeys.Send(KeysToSend);
}
このコードは、私が制御しようとしているJavaアプリケーションを除いて、すべてのプログラムで正常に機能します。
たとえば、次のコードでボタンを作成すると、次のようになります。
SendKeysToWindow("Java application window name", "{F2}");
SendKeysToWindow("Popoup window name", "123");
これにより、F2がメインプログラムウィンドウに送信され、そこで別のウィンドウがポップアップし、2番目のSendKeysToWindowコマンドが「123」をそのウィンドウに送信します。これはそれが機能することが期待される方法であり、これは他のすべてのプログラムの場合です。
ただし、これらのコマンドをJavaプログラムに送信すると、次のようになります。最初のSendKeysToWindowコマンドは正常に実行されます(ポップアップウィンドウが表示されます)が、そのウィンドウに「123」は送信されません。
もう一度ボタンを押すと、「123」がポップアップウィンドウに送信され、別のポップアップウィンドウが開きます。
2つのSendKeysToWindowコマンド用に2つの別々のボタンを作成し、それらを次々に押すと、両方のコマンドが正常に実行されます。
何が問題になるのでしょうか?
進歩の助けをありがとう、それは本当に私を夢中にさせています。
PS:私はC#の初心者なので、答えは単純にしてください。