Работа с чужими приложениями
От: LamerVanek Россия  
Дата: 21.10.05 04:14
Оценка:
Доброго всем времени суток!
Есть такая проблема: необходиом в чужом приложении в полее ввода каким нибудь образом вставлять строку. Но есть подозрение, что чужое приложение сплошь неоконные контролы. У кого нибудь есть соображения?
Заранее благодарен!
Re: Работа с чужими приложениями
От: aleckstein Россия  
Дата: 21.10.05 08:17
Оценка:
Здравствуйте, LamerVanek, Вы писали:

LV>Доброго всем времени суток!

LV>Есть такая проблема: необходиом в чужом приложении в полее ввода каким нибудь образом вставлять строку. Но есть подозрение, что чужое приложение сплошь неоконные контролы. У кого нибудь есть соображения?
LV>Заранее благодарен!

Для начала проверь свою предположение с помощью SPY++ (помоему как-то так), входящему в комплект MS VC. Если подтвердится, можно попробовать тупо программно передвигать мышку на поле ввода, программно кликать, а затем посылать сообщения нажатия клавишь клавиатуры.
acta non est fabula — представление не окончено
Re[2]: Работа с чужими приложениями
От: LamerVanek Россия  
Дата: 21.10.05 08:23
Оценка:
Здравствуйте, aleckstein, Вы писали:

>Для начала проверь свою предположение с помощью SPY++ (помоему как-то так), входящему в комплект MS VC. Если подтвердится, можно попробовать тупо программно передвигать мышку на поле ввода, программно кликать, а затем посылать сообщения нажатия клавишь клавиатуры.


К выводу о том что контролы неоконные проверил с помощью SPY++. Действительно так. Можно конечно попробовать последовать вашему совету. Но один из контролов только для чтения... Как быть с ним?
Re[3]: Работа с чужими приложениями
От: Danchik Украина  
Дата: 21.10.05 12:50
Оценка:
Здравствуйте, LamerVanek, Вы писали:

LV>Здравствуйте, aleckstein, Вы писали:


>>Для начала проверь свою предположение с помощью SPY++ (помоему как-то так), входящему в комплект MS VC. Если подтвердится, можно попробовать тупо программно передвигать мышку на поле ввода, программно кликать, а затем посылать сообщения нажатия клавишь клавиатуры.


LV>К выводу о том что контролы неоконные проверил с помощью SPY++. Действительно так. Можно конечно попробовать последовать вашему совету. Но один из контролов только для чтения... Как быть с ним?


Насколько я знаю поле ввода оконное, потому что для того чтобы иметь фокус и получать сообщения с клавитуры необходимо быть окном. Но есть варианты когда ввод емулирует какой то контроллер.
Необходимо определить через тот же SPY кто же получает сообщения от клавиатуры и сэмулировать для него нажатия клавиш.
Если не подойдет SendMessage, пробуй keybd_event, SendInput.
Re[4]: Работа с чужими приложениями
От: LamerVanek Россия  
Дата: 22.10.05 01:27
Оценка:
D>Насколько я знаю поле ввода оконное, потому что для того чтобы иметь фокус и получать сообщения с клавитуры необходимо быть окном. Но есть варианты когда ввод емулирует какой то контроллер.
D>Необходимо определить через тот же SPY кто же получает сообщения от клавиатуры и сэмулировать для него нажатия клавиш.
D>Если не подойдет SendMessage, пробуй keybd_event, SendInput.

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

Пробовал находить поля ввода с помощью FindWindowEx.


  var edt: hWnd;
   ...
  edt := FindWindowEx(<соотв параметры на память не помню>); // не находит ничего
  
  // а если так то находит но ничего не вставляет, не устанавливает фокус и тд.
  while edt = 0 do edt := FindWindowEx(<соотв параметры на память не помню>);
Re[3]: Работа с чужими приложениями
От: _spin_ Россия  
Дата: 22.10.05 17:28
Оценка:
Здравствуйте, LamerVanek, Вы писали:

LV>К выводу о том что контролы неоконные проверил с помощью SPY++. Действительно так. Можно конечно попробовать последовать вашему совету. Но один из контролов только для чтения... Как быть с ним?


Ещё вариант — падчить память процесса, но это уже извращение, да и работает нестабильно. Но если ничего не остаётся — можно сделать и так.
... <<Звери — Напитки покрепче>>
Не восхрапи на работе, ибо храпом своим разбудишь начальника своего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.