Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.07.2006, 02:25
decoder decoder вне форума
Прохожий
 
Регистрация: 01.07.2006
Сообщения: 1
Репутация: 10
Восклицание Help! WinAPI !!

Помогите! Как WinAPI функцией SendMessage передать строку в поле ввода данных какого либо окна ??? Как найти дескриптор поля ввода ???
Заранее спасибо!
Ответить с цитированием
  #2  
Старый 01.07.2006, 04:03
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Цитата:
Как WinAPI функцией SendMessage передать строку в поле ввода данных какого либо окна ???

Код:
SendMessage( h, WM_SETTEXT, 0, Integer( s ) );

h - Handle текстового поля.
s - строка PChar.

Цитата:
Как найти дескриптор поля ввода ???

Используй функцию FindWindow для поиска окна, и функцию FindWindowEx для поиска дочернего окна. Возможно, тебе поможет эта статья http://decoding.narod.ru/practic/wndinfo/wndinfo.html.

Пример: кинь на форму Edit и Button. Для кнопки напиши следующую процедуру.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: PChar;
  h: THandle;
begin
   // Текст, который будет передан в поле ввода
   s := 'Text';
   // Поиск окна, на котором расположено поле ввода
   h := FindWindow( 'TForm1', nil );
   // Поиск поля ввода, в которое нужно передать текст
   h := FindWindowEx( h, 0, 'TEdit', nil );
   SendMessage( h, WM_SETTEXT, 0, Integer( s ) );
end;
Ответить с цитированием
  #3  
Старый 25.01.2008, 15:27
Аватар для XIO
XIO XIO вне форума
Новичок
 
Регистрация: 06.12.2007
Сообщения: 77
Репутация: 32
По умолчанию нажатие кнопки на форме приложения с помощью SendMessage/PostMessage

Доброго времени суток, уважаемые.

Никак не могу понять тонкость работы с SendMessage.
Есть процедура:

Код:
procedure TMyThread.ClickOnForm;
var
  TheChildHandle: HWND;
begin
  TheChildHandle := FindWindowEx(FindWindow(nil, 'Microsoft Office Outlook'), 0, nil, PChar('Да'));
  SendMessage(TheChildHandle, WM_ACTIVATE, 1, 1);
  SendMessage(TheChildHandle, WM_LBUTTONDOWN, MK_LBUTTON, 1);
  Sleep(300);
  SendMessage(TheChildHandle, WM_LBUTTONUP, MK_LBUTTON, 1);
end;

В общем и целом работает. НО! Только визуально! Видно как нажимается кномпа "Да". Только аутлук, не реаигрует на эти нажатия, пока не кликнешь по форме созданного письма или по форме с вопросом. Как решить эту проблему? В качестве параметров я уже многое пробовал подставлять, безрезультатно. Кто знает как победить проблему? Зарание благодарен.
Ответить с цитированием
  #4  
Старый 25.01.2008, 17:27
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

А что, если попробовать передавать фокус твоему окну? Точно не знаю. Но можно попробовать.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #5  
Старый 25.01.2008, 21:49
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Может попробовать передовать сообщение WM_LBUTTONDBLCLK ?
Или найди идентификатор кнопки о попробуй послать ей BM_CLICK
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #6  
Старый 28.01.2008, 05:38
Аватар для XIO
XIO XIO вне форума
Новичок
 
Регистрация: 06.12.2007
Сообщения: 77
Репутация: 32
По умолчанию

Попробовал наводить фокус на окно
Код:
SetFocus(FindWindow(nil, 'Microsoft Office Outlook'));

Пробовал использовать WM_LBUTTONDBLCLK, не помогает.
С Идентификатором кнопки пока задумался. Незнаю как его определить. Но буду искать ответ. Спасибо за помощь. Если есть ещё какие идеи буду рад
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter