Так это делается элементарно и как я описал, если есть соответствующие знания, в частности как организовать работу функции WinAPI. Это ж не долго, может чуть более написания скрипта в WinAutomation, хотя я более предпочитаю AutoMate! Всего один раз написать, а потом пользоваться.
Вы уверены, что всё так просто? Вот так примерно устроено окно чартинга:
(Ссылка на вложение)
Вы хотите писать свою собственную утилиту для разбора структуры TradeStation, вместо того, чтобы использовать готовое?
Automate в определённом плане полный отстой в сравнении с WinAutomation, так как части фишек в нём просто нет, а сам WinAutomation генерит машинный код, который работает в сотни раз быстрее интерпретатора Automate. Для одних задач может хватить Automate, для других без WinAutomation - большие времязатраты, которые стоят денег.
поиск любого окна:
WindowHandlePrt = FindWindowA(0, 0);
While WindowHandlePrt > 0 Begin
GetClassNameA(WindowHandlePrt, WindowClassNam, WindowClassLen);
If InStr(WindowClassNam, "ORPLAT.EXE TRADESTATION") > 0
Then Begin
WindowHandleChd = FindWindowExA(WindowHandlePrt, 0, 0, 0);
WindowHandleChd = GetWindow(WindowHandleChd, GW_CHILD);
While WindowHandleChd > 0 Begin
GetClassNameA(WindowHandleChd, WindowClassNam, WindowClassLen);
If InStr(WindowClassNam, "ORContainerMDIChildFrame") > 0
Then Begin
WindowTitleLen = GetWindowTextLengthA(WindowHandleChd) + 1;
WindowTitleNam = Spaces(WindowTitleLen);
GetWindowTextA(WindowHandleChd, WindowTitleNam, WindowTitleLen);
If WindowHandle = 0
Then Begin
If InStr(WindowTitleNam, WindowName) > 0
Then Begin
WindowHandle = WindowHandleChd;
If WindowUniq = 0 Then Return WindowHandle;
End;
End;
End;
WindowHandleChd = GetWindow(WindowHandleChd, GW_HWNDNEXT);
End;
End;
WindowHandlePrt = GetWindow(WindowHandlePrt, GW_HWNDNEXT);
End;
чуть больше код для скрина окна.Проблема в том, что я не знаю как в EL описывается структура параметров функции, например функция GetWindowRect(WindowHandle, Struc).
Объявляю:
DefineDLLfunc: "user32.dll", Long, "GetWindowRect",
Long, // * [in] hWnd: Дескриптор окна.
Long{IEasyLanguageObject}; // что тут надо установить, чтобы получать значения?? * [out] lpRect: Указатель на структуру, которая принимает экранные координаты левого верхнего и нижнего правого углов окна.
как получить lpRect?в нём содержатся параметры окна: lpRect.Weight...