Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322

SendMessage элементу чужого окна

13.03.2011, 13:45. Показов 4979. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу на C#, получаю handle чужого окна через процесс (process.MainWindowHandle), отправляю этому окну сообщения через API функцию SendMessage, все прекрасно работает.
Вопрос: как отправить сообщение элементу чужого окна.

Например: есть блокнот, могу отправить сообщение на закрытие окна, необходимо отправить сообщение в окно ввода текста (в конечном счете необходимо вставить текст). Думаю что для этого надо сначала получить handle окна текста. Как можно его получить имея handle главного окна блокнота и/или handle процесса?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2011, 13:45
Ответы с готовыми решениями:

Данные из чужого окна (игры)
Здравствуйте! У меня возник такой вопрос, можно ли из игры получить данные которые мне необходимы? Хочу получить из игры результаты гонки...

Информация об объекте чужого окна
Доброго времени. Писал я когда-то программку на Delphi, которая при наведении курсора в чужом окне на определенный объект получала о нем...

Определить координаты чужого окна
Более подробно и умней задам вопрос. Хочу чтобы моя форма пристраивалась слева около чужого окна ...и если чужое окно перемещают то...

5
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
21.03.2011, 16:19
Нужно использовать API функцию GetDlgItem(hwnd, nIDDlgItem)
hwnd - дескриптор родительского окна
nIDDlgItem - id дочернего элемента управления.
Чтобы узнать id поля ввода текста в notepad используй Spy++, идущую вместе с Visual Studio. На первой закладке в информации о окне есть поле 'Control ID' - это то что тебе нужно.

Имея hwnd дочернего окна, можно будет использовать SendMessage
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
21.03.2011, 16:26  [ТС]
Спасибо за функцию, не знал.
Но нельзя ли получить дочернее окно перебором? Я пробовал использовать функцию EnumChildWindows, в блокноте вроде бы находит то что нужно. Однако на некоторых окнах, где есть элементы ввода текста, списки и др. вообще не отрабатывает. Может есть еще способы? Хотя я читал, что некоторые окна получают handle только при получении фокуса, может с этим связано и как быть в этом случае?
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
21.03.2011, 16:42
Думаю можно. EnumChildWindows должна всех находить.
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
21.03.2011, 17:22  [ТС]
В блокноте находит четыре дочерних окна, я так понимаю это меню, текстовое поле и полосы прокрутки.
Попробовал использовать для окна, создаваемого Java приложением, не видит ни одного дочернего окна, хотя в приложении имеются текстовое поле, список, кнопки и др.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
21.03.2011, 17:35
Возможно они реализованы не в виде дочерних окон, а как-то по другому.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2011, 17:35
Помогаю со студенческими работами здесь

Изменение свойств чужого окна
Здравствуйте! Есть приложение (что-то типа зверя гуляющего по экрану) без видимого окна, но оно сделано так, что постоянно поверх остальных...

Получение размеров чужого окна
Возник вопрос по получению размеров окна стороннего приложения. Пробовал WinAPI GetWindowRect(), но он выдает совершенно не то, что выдает...

Обратиться к элементу из другого окна
Итак, на mainwindow 3 кнопки, которые переводят на один и тот же page. В зависимости от того, на какую кнопку нажимаешь, label и listbox,...

Прозрачность чужого окна
Если не ошибаюсь на API есть возможность изменить прозрачность окна стороннего приложения. Как это можно реализовать на C# ? Заранее...

Скроллинг чужого окна (функция WinAPI)
Есть стандартная функция WinAPI ScrollWindow(), которая может добавлять скролл сторонним окнам. Но у меня почему-то не работает этот код....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru