Я пытаюсь управлять приложением Java из моей программы на C #.Перед тем, как программа начинает вводить данные, она проверяет наличие каких-либо предыдущих окон ввода данных и пытается закрыть их.
Код для проверки существования окна:
public static bool WindowExists(string WindowName)
{
IntPtr hWnd = FindWindow(null, WindowName);
return (hWnd != IntPtr.Zero);
}
До сих пор я просто использовал этот метод в цикле while (отправляя Alt + F4 в окна), пока не осталось открытого окна ввода.
Некоторое время назад приложение Java получило обновление, и этот методбольше не работает.По какой-то причине WindowExists продолжает возвращать true, даже после закрытия окна ввода данных.Это происходит только в том случае, если окно ввода существовало хотя бы один раз.
Я даже пытался добавить Thread.Sleep () в цикл, чтобы убедиться, что это не вызвано некоторой задержкой в приложении Java, но ононе работал
Иногда простой вызов WindowExists приводит к сбою окна ввода.
Нет проблем с кодом, потому что он работал раньше, и он все еще работает с другими программами, поэтому это должно быть проблемой с обновлением в программе Java.
Есть ли какие-либоАльтернативный / более надежный способ проверить, существует ли окно?Изменение отправки Alt + F4 на «событие закрытия окна» также может стоить попробовать, но я не знаю, как отправить это событие в окно другой программы.
Я новичок, поэтому, пожалуйста, оставьте ответ простым,
Заранее спасибо.