Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.89
Клод
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
#1

Програмный ввод текста в другую программу - C++ Builder

23.02.2012, 10:32. Просмотров 3904. Ответов 30
Метки нет (Все метки)

Всех с 23 февраля!!! Приветствую вас, я опять вернулся
Я работаю в C++ Builder 6. Я бы хотел бы узнать, как программно вводить текст. Например "абвгдйка". HWND окна уже уммею находить. Слышал о функции
C++
1
Send()
, но у меня не получалось её использовать.
http://www.cyberforum.ru/cpp-builder/thread1924658.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2012, 10:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Програмный ввод текста в другую программу (C++ Builder):

Ввод текста на рисунок
как можно сделат что бы либо Edit был прозрачным, либо что бы на определенный...

Ввод текста в РичЭдит1 и вызов формы1
Здравствуйте форумчани!! Вопрос в следующем. Подскажите можно с помощью текста...

Ввод данных и вывод текста TRUE
Добрый день, помогите плиз сделать прогу, буду благодарен, вот задание:...

Засунуть программу в другую программу
собственно говоря, есть одна программка, которую надо засунуть в свою программу...

Отправление текста в другую программу
Здравствуйте. Можно ли в C# отправить текст в другую программу, если другая...

30
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
02.03.2012, 22:07 #21
Вот так пробую работает...
12.rar
Вспомнил одну проблему иногда встречаются два дочерних окна с одинаковыми именами из-за этого можно ошибиться в определении HANDLE
0
Клод
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
03.03.2012, 11:22  [ТС] #22
Цитата Сообщение от Avazart Посмотреть сообщение
Вот так пробую работает...
Вложение 131252
Вспомнил одну проблему иногда встречаются два дочерних окна с одинаковыми именами из-за этого можно ошибиться в определении HANDLE
Я ищу HANDLE не по имени а по классу. Твой пример работает, но проблему он не решил, т.к мне надо взаимодействовать не с другим Memo, а с другой программой.

Добавлено через 3 часа 7 минут
Ещё одна проблема, почитал в инфе, что функция strlen копирует только первую строку, есть ли альтернатива этой функции для копии всего текста.
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
03.03.2012, 21:05 #23
strlen не копирует первую строку - она возвращает длину строки от начала до завершающего нулевого символа. сама строка при этом может состоять... ммм... из нескольких строк, то есть содержать символы \n - на работе strlen это не отразится
0
Клод
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
03.03.2012, 21:06  [ТС] #24
Хм... странно, у меня она копирует тока первую строку и то не в том формате, получаются какие-то иероглифы. И как это исправить никто толком не рассказывает.
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
03.03.2012, 21:26 #25
я вообще не понимаю как она у вас что то копирует учитывая что из хелпа имеем
=====
LRESULT SendMessage(

HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
=====
An application sends a WM_SETTEXT message to set the text of a window.

WM_SETTEXT
wParam = 0; // not used; must be zero
lParam = (LPARAM)(LPCTSTR)lpsz; // address of window-text string
=====
то есть вы должны делать не
C++
1
SendMessage(hPNaviTop,WM_SETTEXT,strlen(s),int(s))
а
C++
1
SendMessage(hPNaviTop,WM_SETTEXT,0,long(s))
Добавлено через 3 минуты
а вы случайно не юникод ей шлете? она этого может не понять
0
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
04.03.2012, 00:00 #26
Согласен что надо писать long,а при 0 в третьем параметре ф-ция сама определяет длину
0
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
04.03.2012, 00:17 #27
Думаю возможно две причины либо неправильно определен Handle либо эта прога блокирует сообщения..
0
Вложения
Тип файла: rar Send.rar (71.8 Кб, 9 просмотров)
Клод
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
04.03.2012, 11:42  [ТС] #28
C++
1
SendMessage(hPNaviTop,WM_SETTEXT,0,long(s))
Всё спасибо)
проблема решена
0
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
04.03.2012, 14:07 #29
Так в чем проблема была?
В long?
Или то что у вас Unicode подключен?
0
Клод
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
04.03.2012, 14:08  [ТС] #30
Да в long, потому что с юникодом я никаких операций не выполнял (из-за своей неопытности и незнания)
0
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
04.03.2012, 14:52 #31
Тобиш в моем случае:
Код
sizeof(int) = sizeof(long)
a у автора
Код
sizeof(int) < sizeof(long)
0
04.03.2012, 14:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 14:52
Привет! Вот еще темы с решениями:

Передача текста на другую программу и +
Привет ребята, Нужно реализовать: Передача текста на другую программу и далее...

Передача текста в другую программу SendMessage
Подскажите пожалуйста. Написал программу которая программно нажимает кнопку в...

Передача текста в другую программу в текстовое поле
Вот здраствуйте,возник вопрос ,вот допустим у меня есть форма с кнопкой и мемо1...

При передаче текста в другую программу нужен только Bluetooth
При открытии списка программ в которые может быть отправлен текст из моей...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru