У меня стоит следующая задача:
Есть 2 аппликации, одна написана на ВинАПИ, вторая с использованием .Net. Обе — ГУИ приложения.
Надо написать третее приложение, которое должно получать данные(простой текст) из окон приложений модифицировать их, и вставлять обратно.
Для ВинАПИ приложения все просто — перебором всех окон приложения по какому-то ClassName для окна находишь искомое окно, а далее с помощю посилки сообщений и используя клипборд получаешь данные и вставляешь их обратно.
Проблема состоит в том, что для .Net приложения клас окна это что-то типа "WindowsForms10.Window.8.app.0.378734a", причем для всех окон оно одинаковое. Следовательно невозможно найти нужное тебе окно, ибо по тексту окна искать невозможно.
Здравствуйте, bionicman, Вы писали:
B>Проблема состоит в том, что для .Net приложения клас окна это что-то типа "WindowsForms10.Window.8.app.0.378734a", причем для всех окон оно одинаковое. Следовательно невозможно найти нужное тебе окно, ибо по тексту окна искать невозможно.
Мы так и делаем: ищем сначала по ClassName по шаблону WindowsForms10.Window.8.*, а потом по тексту заголовка окна, тоже по шаблону. В тех редких случаях, когда и заголовок не помогает, в ход идут распознавалки по расположению окна и по его содержимому (сколько и каких дочерних окон, например).
А если не секрет, зачем у вас такая задача встала?
Здравствуйте, Аноним, Вы писали:
А>Во-первых, искать окна таким образом абсолютно неправильно. А>Во-вторых, для одного приложения существует Control.FromHandle()
А>Ну и напоследок, посмотрите в сторону ManagedSpy (http://msdn.microsoft.com/msdnmag/issues/06/04/ManagedSpy)
Спасибо большое!!! ManagedSpy — то что нужно!