Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2012, 20:27   #1
Spawn.Ivan
Пользователь
 
Регистрация: 21.03.2012
Сообщений: 12
Радость Отправить Сообщение в чужую программу

Здравствуйте. Подскажите пожалуйста как с помощью команды SendMessage или PostMessage отправить текст... допустим в Калькулятор... Хэндл знаю как определить но я не помню как правильно оправлять текст. Делал как-то... но не помню... Подскажите пожалуйста..
Spawn.Ivan вне форума Ответить с цитированием
Старый 06.04.2012, 22:06   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Для моего калькулятора из Win7-32 так
Код:
var
  h1, h2, h3, h4: HWND;
  s: string;
begin
  h1 := FindWindow(nil,'Калькулятор');
  h2 := FindWindowEx(h1, 0, 'CalcFrame', nil);
  h3 := FindWindowEx(h2, 0, '#32770', nil);
  h4 := FindWindowEx(h3, 0, 'Static', '0');//вот тут 4 статика, поэтому надо как-то отсеить, я отсеил по св-ву Caption, 
  //но оно меняется.  Можно по координатам или по высоте и т.п.
  s := '123456';
  SendMessage(h4, WM_SETTEXT, 0, lParam(s));
end;
Ну и ес-но надо проверять найдено ли было окно или нет

Последний раз редактировалось eoln; 06.04.2012 в 22:10. Причина: wParam -> This parameter is not used.
eoln вне форума Ответить с цитированием
Старый 06.04.2012, 22:29   #3
Spawn.Ivan
Пользователь
 
Регистрация: 21.03.2012
Сообщений: 12
По умолчанию

[DCC Error] Unit1.pas(59): E2066 Missing operator or semicolon - пишет такое... Не знаю в чем проблема...


-----------------

С ошибкой разобрался.. но ничего не выходит.. я отправлял используя только "h1 := FindWindow(nil,'Калькулятор');" ... И sendMessage без проблем писал там где мне надо... Хоть убей не могу не найти не вспомнить...


-----------------

То есть без указания подробного дескриптора куда вводдить..

Последний раз редактировалось Spawn.Ivan; 06.04.2012 в 22:39.
Spawn.Ivan вне форума Ответить с цитированием
Старый 06.04.2012, 22:43   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если h1 только использовать, то будет смена заголовка. Есть программа WinSpy, она поможет разобраться как дойти до нужного контрола.
eoln вне форума Ответить с цитированием
Старый 06.04.2012, 22:45   #5
Spawn.Ivan
Пользователь
 
Регистрация: 21.03.2012
Сообщений: 12
По умолчанию

Даааа... я вот сейчасс сижу и вижу как только заголовок обнуляется... я вспомнил что я текст преобразовывал так - "ord(text)". Может это как-нить наведет на что-нить?))
Spawn.Ivan вне форума Ответить с цитированием
Старый 06.04.2012, 22:50   #6
Spawn.Ivan
Пользователь
 
Регистрация: 21.03.2012
Сообщений: 12
По умолчанию

Допустим раньше выходило так - Я нажимаю на кнопку 4-ю мыши, в игре WarCraft III У меня открывается окно ввода сообщение, тда сразу вводится заготовленный текст и тут же отправляется... Как открыть и закрыть окно ввода я понял. Но не могу туда отправить текст.. Дескриптор этого окошка я думаю фиг узнаешь =)
Spawn.Ivan вне форума Ответить с цитированием
Старый 07.04.2012, 11:57   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от Spawn.Ivan Посмотреть сообщение
То есть без указания подробного дескриптора куда вводдить..
Пробуй WM_PASTE в главное окно, некоторые программы могут сами переслать туда куда надо, а некоторые не могут

Цитата:
Сообщение от Spawn.Ivan Посмотреть сообщение
я вспомнил что я текст преобразовывал так - "ord(text)
Это вообще из другой оперы
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрыть чужую программу kholoshchak Общие вопросы Delphi 1 27.04.2011 15:06
Свернуть чужую программу в трей grafgrial Общие вопросы Delphi 6 18.06.2010 19:27
Отправить сообщение вконтакт mish@ Работа с сетью в Delphi 13 16.05.2010 18:29
Отправить сообщение на факс Syltan Свободное общение 12 16.11.2009 20:10
Перетаскивание на чужую программу mutabor Win Api 2 03.07.2008 20:33