1 (изменено: yalanne, 2015-01-30 04:43:22)

Тема: AHK: Скрипт не может взаимодействовать с контролом В другой программе

Доброго времени суток. Моя проблема заключается в том что я не могу считать или изменить контролы edit box'ов в определенной программе.
Я написал небольшой скрипт для этого. Он работает почти везде, кроме нужной программы.


Gui, show, w300 h300
buffer_size = 50
Return
GuiClose:
ExitApp 
F1::
MouseGetPos, , , , control
VarSetCapacity( buffer, buffer_size, 1 )
SendMessage, 0xD, buffer_size, &buffer, %control%, A
tooltip, %buffer% \ %Errorlevel%
return
F2::
MouseGetPos, , , , control
ptrText := "тест"
SendMessage, 0xC, False, &ptrText, %Control%, A
return

На F1 Показывает содержимое edit box'а и кол-во символов под курсором мыши.
На F2 Вносит в этот бокс новое значение "тест"

А в той программе в которой мне это нужно не чего не происходит.
Программа называется Octopus apex. это электронный архив.

программированием начал заниматься недавно и по этому много во незнаю:)

2

Re: AHK: Скрипт не может взаимодействовать с контролом В другой программе

Видимо, эти боксы не рассчитаны на работу с этими сообщениями. Стандартный контрол Edit предназначен для использования всеми желающими, поэтому интерфейс взаимодействия с ним опубликован. Но никакой автор программы не обязан ни реализовывать, ни публиковать подобный интерфейс для доступа к самописным контролам своей программы. Т.к. эти контролы не предназначены для использования откуда бы то ни было, кроме самой этой программы.

Так что, видимо, вам остаётся взаимодействовать с ними путём имитации действий пользователя мышью и клавиатурой.

3

Re: AHK: Скрипт не может взаимодействовать с контролом В другой программе

а через сторонние программы можно посмотреть эти сообщения для работы с ними?

4

Re: AHK: Скрипт не может взаимодействовать с контролом В другой программе

Не знаю. Всё зависит от того, что собой представляют эти контролы. Они вполне могут работать вообще без использования сообщений. Как они там устроены внутри, известно одному их автору.