Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/27: Рейтинг темы: голосов - 27, средняя оценка - 4.81
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732

Кнопка: получить текст из эдит чужого окна

03.11.2011, 20:20. Показов 5312. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно нажать кнопку и взять текст едита чужого окна. С кнопкой я допустим разобрался

C++
1
2
3
4
5
HWND wnd, cwnd;
wnd = FindWindow(NULL, "имя окна");
cwnd = FindWindowEx(wnd, NULL, NULL, "имя кнопки");
SendMessage(cwnd, WM_LBUTTONDOWN, 0, 0);
SendMessage(cwnd, WM_LBUTTONUP, 0, 0);
А вот как быть с едитом я не знаю
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2011, 20:20
Ответы с готовыми решениями:

считать текст с чужого окна
Доброго времени суток! Пишу тут одну программку шпору, но в ходе написания столкнулся со след. проблемами: //---------------- { ...

Не могу получить GetPixel от чужого окна
пытаюсь поймать пиксели из DROID4X это эмулятор android на виртуалке procedure TForm1.Timer3Timer(Sender: TObject); var DC: HDC; ...

Получить текст из чужого статусбара
Хочется получить текст из нулевой панели статусбара другого приложения. Хэндл на статусбар получить могу. Но с посылкой сообщения...

18
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
03.11.2011, 20:46
C++
1
2
3
4
char EDIT_TEXT[512]; // буфер
HANDLE temp = Form1->Handle;
SendMessage(temp, WM_GETTEXT, sizeof(EDIT_TEXT), (LPARAM)EDIT_TEXT); //получаем текст в буфер
ShowMessage(EDIT_TEXT);
C++
1
SendMessage(Button2->Handle, BM_CLICK, 0, 0); // клик
2
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
03.11.2011, 20:59  [ТС]
Не оченЬ понял как оно должно узнать из какого именно едита в чужой программе взять текст
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
03.11.2011, 21:42
Flyer, ну не тупи, так же найди эдит как ты нашел кнопку, а потом все просто и понятно написато!
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
03.11.2011, 21:56  [ТС]
Ех, ну да, туплю. Но вот например с кнопкой ищем имя кнопки, но с едитом что? Текст в нем?
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
03.11.2011, 22:12
Вот, должно помочь.
1
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
04.11.2011, 00:28  [ТС]
хендл кнопки нашло правильно,сравнил с тем, что spy++(spyxx), но кнопка почему то не жмется =/
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.11.2011, 00:35
Flyer, попробуй как нить по другому нажать =)
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
04.11.2011, 00:50  [ТС]
Попробовал и
C++
1
2
SendMessage(cwnd, WM_LBUTTONDOWN, 0, 0);
SendMessage(cwnd, WM_LBUTTONUP, 0, 0);
и
C++
1
SendMessage(cwnd, BM_CLICK, 0, 0);
(та самая эмуляция первого)
Не работает. С двумя пустыми едитами тоже печаль, оба пусты и оба нужны. как найти оба?

Один находит, но когда он не пустой то передает только первый символ =/
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.11.2011, 01:03
а так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
void wj_ClickKeyToWindow(int but, HWND Handle)
{
    if(IsWindow(Handle) == true, Handle != 0)
    {
        SendMessage(Handle, WM_KEYDOWN, but, NULL);
        SendMessage(Handle, WM_KEYUP, but, NULL);
    }
    else
    {
        // handle error
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    HANDLE tmp = Form1->Button1->Handle;
    wj_ClickKeyToWindow(VK_RETURN, tmp);
}
//---------------------------------------------------------------------------
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
04.11.2011, 01:09  [ТС]
и так тоже нет. кнопка битбатон кст
Вопрос с нахождение едита снят, но вот почему только 1 символ копируется мне все дальше не ясно
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.11.2011, 01:14
Лучший ответ Сообщение было отмечено как решение

Решение

Мечты вуайериста - чужие окна
Мечты вуайериста - чужие окна 2
, для внеклассного чтения.
3
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
04.11.2011, 01:19  [ТС]
спасиб конечно, но зачем одно и то же 2 ссылками? (:
и про кнопку там ничего нету, и про едит так же, так что в данной ситуации не оч полезно, но так, на досуге почитаю, спасибо
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.11.2011, 01:27
исправил, может, кому-нибудь другому будет поинтересней, чем вам
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.11.2011, 01:34
Может не туда отправляешь сообщения?
Миниатюры
Кнопка: получить текст из эдит чужого окна  
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.11.2011, 01:38
сорри!!! не то отправил
Вложения
Тип файла: zip wj_struct_engine_god.zip (1.02 Мб, 51 просмотров)
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.11.2011, 01:37  [ТС]
C++
1
2
3
4
5
wnd = FindWindow(NULL, L"KeyGen-XE2");
wnd = FindWindowEx(wnd, NULL, NULL, L"");
bwnd= FindWindowEx(wnd, NULL, NULL, L"Gen. Seriale");
 
SendMessage(bwnd, BM_CLICK, 0, 0);
та туда вроде, хендлы те что надо.
п.с. программка так, для примера

Добавлено через 26 минут
хмм, попробовал с тестовым приложением (1 кнопка и ее обработчик) то кликается нормально, а в этом чет не хочет. У кнопок в этой проге класс TRzBitBtn

Добавлено через 23 часа 23 минуты
это вообще печально, в других программах нажимается нормально, а тут не хочет да и все. мое предположение - из-за нестандартного контрола. насколько оно верно я не знаю.
Меня больше интересует как нормально скопировать текст с едита. Пробую
C++
1
2
3
SendMessage(e1wnd, WM_GETTEXT, sizeof(buff), (LPARAM)buff);
 
ShowMessage(buff);
и только первый символ. Как нормально сделать?
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
05.11.2011, 02:08
можно опробовать костыль, поставить туда фокус, выделить все и скопировать в буфер =)
1
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.11.2011, 10:31  [ТС]
примерчик был бы кстати

Добавлено через 8 часов 14 минут
справился с едитом.
Gremlin, ты делал свою ту программу на 6 билдере, а я на рад хе2, юникод чтоб ему
собственно проблема решается или
C++
1
2
wchar_t buff[500];
SendMessage(e1wnd, WM_GETTEXT, sizeof(buff), (LPARAM)buff);
или
C++
1
2
char buff[500];
SendMessageA(e1wnd, WM_GETTEXT, sizeof(buff), (LPARAM)buff);
Но вот почему именно та кнопочка не кликается, меня все еще беспокоит
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2011, 10:31
Помогаю со студенческими работами здесь

Присвоить текст заголовку чужого окна с русским названием (страдает кодировка)
Добрый день. Вот такой код #include <windows.h> int main(int argc) { HWND thehwnd;

Получить текст из Edit чужого приложения
Дорогие Друзья. Помогите пожалуйста . В чем различия GetWindowText и WM_Gettext. И можноли вообше программно выташить текст из чужого едит...

Как получить текущую раскладку клавиатуры для чужого активного окна?
Что нужно передавать в GetKeyboardLayout для того, чтобы получить раскладку активного чужого окна, а не моей программы? Знаю, что...

Эдит контролы в вектор векторов и изменение размера окна
Не могу запихать эдит контролы в вектор векторов protected: // 0-ая строка CEdit m_firstMatrix00; CEdit m_firstMatrix01; ...

Получить текст из окна браузера
Имеется открытое окно браузера (например Chrome), в которое загружена web-страница. С этой страницы надо взять текст и использовать его в...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru