Как динамически заполнять формы в стороннем приложении?
Знание темы: C / C++, Windows API, C# и что-то в этом роде.
У меня есть приложение, написанное на C#. Мы назовем его A. приложение A использует Windows API для имитации нажатия клавиш клавиатуры (TAB, некоторый текст, SHIFT) с помощью SendInput (ссылкаМогу отметить, что при использовании этого метода моделирования в таких приложениях, как блокнот, Chrome работает без каких-либо проблем.
Приложение B, которое должно быть заполнено путем имитации ключей, написано на C/C++, но я не знаю, какая версия и детали. Если и есть что-то знакомое, то это Микрос Фиделио.
Проблема заключается в том, что при моделировании клавиш TAB из приложения A, приложение B останавливается, застревает, не обнаруживает нажатие клавиши TAB. Даже при физическом нажатии клавиши TAB курсор не перемещается из своего текущего положения. Только после того, как несколько ключевых пропуска. Еще одна вещь, которая происходит, это сочетания клавиш, такие как Alt + N, также иногда не работают, а иногда работают. Есть ли какой-нибудь буфер с имитированными ключами, и когда вы заполняете этот буфер, вы не можете выполнить следующий толчок?
Мой вопрос заключается в том, есть ли у кого-нибудь способ решить проблему пропуска вкладок?
Что я уже пробовал:
Я пробовал задержку между вкладками 100, 250, 500 мс, но они все равно обнаруживают.
То, что я заметил:
* при перезапуске приложения в симуляция работает, но через определенный промежуток времени она снова накапливается и начинает обнаруживаться
* когда язык клавиатуры переключается на кириллицу, сочетания клавиш не работают и написание кириллического текста гаснет - ?????
У меня есть тест также AutoHotKey, и там тоже есть проблема.
Richard MacCutchan
Проверьте исходный код приложения B, чтобы узнать, почему оно не отвечает.
Zhivko Kabaivanov
у меня нет исходного кода приложения B
BillWoodruff
Можете ли вы взять "другое приложение" и успешно отправить в него ключевые события ?
Zhivko Kabaivanov
Что ты имеешь в виду?
Gerry Schmitz
Как весело! Ради бога, скажите, что должно делать приложение "Б". Может быть, что-то веселое вроде блокнота для создания текстового файла?