Как я, используя C# или C++, вставлять текст в текстовое поле другого приложения? Я сделал это давным-давно и, похоже, что-то помню об использовании приложений HWND. Но поскольку это изменение для каждого экземпляра приложения, я чувствую, что не помню полную историю. Я каким-то образом получаю список запущенных приложений, извлекаю тот, который я хочу, получаю HWND от этого, а затем ... хм .... тогда что? :)Вставить текст в текстовое поле другого приложения
ответ
Используйте FindWindowEx() найти ручку (HWND), а затем отправить сообщение с помощью WM_SETTEXTSendMessage()
При использовании FindWindowEx вам нужно будет сначала найти дескриптор главного окна, используя его имя класса. Затем вам нужно будет найти дескриптор любого контейнера, в котором находится текстовое поле, вызывая FindWindowEx, передавая дескриптор родителя (окна) и имя класса контейнера. Вам нужно будет повторить это, пока не дойдете до текстового поля. Вы можете использовать инструмент под названием Spy++, который по умолчанию устанавливается Visual Studio для проверки целевого приложения и определения иерархии контейнеров (все объекты действительно называются окнами в API, но я называю их контейнерами в отличие от верхнего уровня, уровня) с именами классов.
Тогда SendMessage(), WM_SETTEXT
вы можете использовать класс CLIPBOARD для достижения той же
, но это будет связано с пользователем обработки вместо кода – RvdK
Вместо таргетинга на конкретное приложение вы можете просто отправить нажатия клавиш в текстовое поле.
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
SendKeys.Send(send_text);
private void textBox1_TextChanged(object sender, EventArgs e)
{
send_text = textBox1.Text;
}
Просьба также добавить некоторые объяснения – CodeWarrior
- 1. Python GUI - Вставить текст в текстовое поле
- 2. Вставить текст в текстовое поле в WebBrowser
- 3. vb.net Вставить текст в активное текстовое поле
- 4. Вставить текст в текстовое поле по ссылке
- 5. Вставить HTTP: // в текстовое поле
- 6. Программно вставить текст в текстовое поле в другом приложении
- 7. UIWebView: как вставить текст в текстовое поле HTML
- 8. Вставить текстовое поле inline
- 9. HTML5 текстовое поле/текстовое поле интерактивными текст
- 10. Как вставить текст в текущую позицию каретки в текстовое поле
- 11. Вставить текст в текстовое поле WPF в позиции каретки
- 12. Вставить текст в левую сторону в текстовое поле - JS
- 13. Вставить текст в текстовое поле в qwebview через виртуальную клавиатуру
- 14. Как вставить массовый текст в текстовое поле в WatiN
- 15. Как вставить текст в смарт-текстовое поле в selenium webdriver?
- 16. Как вставить текст в текстовое поле или в конце?
- 17. Текстовое поле дублирует текст
- 18. Вставить динамический текст в текстовое поле Sitecore Rich Text
- 19. Вставить текст в текстовое поле с помощью кнопки VBA Excel
- 20. Копировать текст и вставить в текстовое поле с помощью JQuery
- 21. Python Tkinter. Вставить текст в текстовое поле из def?
- 22. Как вставить текст в активное текстовое поле, используя angularjs
- 23. Как вставить текст из буфера обмена в текстовое поле
- 24. Вставить случайный текст в текстовое поле cshtml javascript MVC3
- 25. Как вставить отформатированный текст в текстовое поле, C#
- 26. Как вставить текст в текстовое поле через C# с Forms.WebBrowser
- 27. Вставить значение select в текстовое поле html
- 28. JQuery вставить выбранное значение в текстовое поле и текстовое поле
- 29. C# Forms добавить текст в текстовое поле от другого класса
- 30. как вставить изображение в текстовое поле МОФОМ
Кроме того, вам может понадобиться добавить вызов InvalidateRect, как SendMessage бы изменить его и я хотел бы видеть значение в Winspector, но значение в моей форме осталась прежней , поэтому InvalidateRect вызовет перерисовку –
Что делать, если приложение содержит более одного текстового поля, и я хочу прочитать данные из определенного текстового поля. Есть ли способ отличить обработчик текстовых полей? – MK446