158 / 157 / 16
Регистрация: 26.07.2008
Сообщений: 549
1

Передача текста в другую программу SendMessage

13.09.2008, 19:29. Показов 16017. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста.
Написал программу которая программно нажимает кнопку в другой программе.
Другая программа называется Proba.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.FormCreate(Sender: TObject);
var
S,S1 : HWND;
begin
S:= FindWindow(nil,'Proba');
S1:=FindWindowEx(S, 0, 0, 'СТАРТ');
S2:=FindWindowsEx(S,0, 0, 'Edit1');
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(S1, BM_CLICK, 0, 0);
end;
Теперь хочу передать текст '1234' в Edit1 в программу Proba.

Правильно ли я делаю?
Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(S2, WM_GETTEXT, 0, 0);
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2008, 19:29
Ответы с готовыми решениями:

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

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

Передача текста из одной консоли в другую
В общем делаю лабу по тестированию ПО, первую программу сделал (которую нужно тестировать), а вот с...

передача текста из одной формы в другую в datadridview
Имеется две формы. На первой находится datagridview с подключённой базой Access и кнопка.По нажатию...

7
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.09.2008, 19:31 2
Нет, не правильно. WM_GETTEXT считывает текст окна и в буфер его.
0
158 / 157 / 16
Регистрация: 26.07.2008
Сообщений: 549
13.09.2008, 20:29  [ТС] 3
Вот нашел решение проблемы.

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var
  s: PChar;
  h: THandle;
begin
   s := '1234';
   h := FindWindow( nil,'Arman');
   h := FindWindowEx( h, 0, 'TEdit',nil);
   SendMessage( h, WM_SETTEXT, 0, Integer(s));
end;
Но теперь другой вопрос: почему если вместо TEdit (h := FindWindowEx( h, 0, 'TEdit',nil) вписать Edit1, то не работает?

Как передать текст в Edit2?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.09.2008, 20:39 4
Эм, TEdit, это класс окна, а Edit1 - имя, которое сама IDE Delphi внутри себя видит. Насколько я помню, вне ее оно просто не существует и смысла не имеет. Используй GetWindow и пройдись по окну.
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
13.09.2008, 20:44 5
FindWindowEx() ищет по имени класса (TEdit), а не по имени компонента (винда эти имена вообще ничего не знает).
0
158 / 157 / 16
Регистрация: 26.07.2008
Сообщений: 549
14.09.2008, 07:35  [ТС] 6
Цитата Сообщение от Vourhey Посмотреть сообщение
Эм, TEdit, это класс окна, а Edit1 - имя, которое сама IDE Delphi внутри себя видит. Насколько я помню, вне ее оно просто не существует и смысла не имеет. Используй и пройдись по окну.
А можно где-нибудь пример посмотреть с GetWindow?

Добавлено через 1 минуту 7 секунд
Цитата Сообщение от Vovan-VE Посмотреть сообщение
FindWindowEx() ищет по имени класса (TEdit), а не по имени компонента (винда эти имена вообще ничего не знает).
И как теперь быть? Дайте пример, плиз.
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
14.09.2008, 12:43 7
Если ищешь хендл в своей проге и есть возможность ее перекомпилировать, то добавить ей функциональность, чтобы она на какое-нибудь сообщение отвечела нужным тебе хендлом. Чтобы было примерно так:
Delphi
1
2
3
4
5
6
7
8
const my_WM_GET_EDIT2 = WM_USER + 1;
...
wnd := FindWindow(nil,'Arman');
hEdit := SendMessage(wnd, my_WM_GET_EDIT2, 0,0);
if hEdit<>0 then begin
    // что там дальше делать с hEdit
    SendMessage(hEdit, WM_SETTEXT, 0, Integer(Pointer(s)));
end;
0
158 / 157 / 16
Регистрация: 26.07.2008
Сообщений: 549
14.09.2008, 20:18  [ТС] 8
Спасибо, попробую.
0
14.09.2008, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2008, 20:18
Помогаю со студенческими работами здесь

Передача переменной в другую программу
Подскажите примеры реализации. Незнаю там ли тему создал.. Необходимо из dll библиотеки на c++...

Передача параметров в другую программу
Здравствуйте, программисты! Есть некий exe файл, который принимает число и выдает его в...

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

Передача значения переменной в другую программу
Необходимо передать значения переменной в другую программу. К примеру необходимо отправить в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru