Я пытаюсь отправить нажатия клавиш из моей программы на C # в приложение Java
Код для отправки ключей:
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 в главное окно программы, где появляется другое окно, а вторая команда SendKeysToWindow отправляет «123» этому окну.
Это то, как это должно работать, и это относится ко всем остальным программам.
Однако, когда я посылаю эти команды программе Java, происходит следующее: первая команда SendKeysToWindow выполняется нормально (появляется всплывающее окно), но она не отправляет «123» в это окно.
Если снова нажать кнопку, во всплывающее окно отправляется «123», и открывается другое всплывающее окно.
Если я создаю две отдельные кнопки для двух команд SendKeysToWindow и нажимаю их одну за другой, обе команды выполняются нормально.
Каким может быть зонд?
Спасибо за помощь в интересах, это действительно сводит меня с ума.
P.S .: Я новичок в C #, поэтому, пожалуйста, оставьте ответ простым.